主权项 |
一种对消息处理系统进行热更新的方法,其特征是在网络通信模块和业务逻辑处理模块之间增加一个热更新控制模块,网络通信模块作为消息处理系统的消息收发端与其它网元设备进行通信,网络通信模块与热更新控制模块连接,热更新控制模块与业务逻辑处理模块连接,所述的热更新控制模块包含:初始化组件、业务进程控制组件、转发控制组件、进程状态表和控制命令处理组件,业务进程控制组件与转发控制组件通过内部消息进行通信完成业务进程的控制和消息的转发;热更新控制模块中的各组件按以下方式对消息处理系统进行热更新:(a).将待更新的新版本业务功能处理进程部署到指定的主机目录下,通过控制命令处理组件的更新控制界面,发出版本更新消息给业务进程控制组件,业务进程控制组件收到版本更新消息后,根据消息里面携带的版本号信息,确定目标版本号并将新版本的目标版本号写入进程状态表的目标版本号字段;(b).取进程状态表中的一条记录,将老版本的业务功能处理进程标识记录在局部变量中,根据进程状态表中目标版本信息,在指定目录下寻找对应的可执行文件是否存在,如果不存在,则提示错误信息,终止更新操作,更新指令失败;如果存在则继续;(c).启动新版本的该可执行文件对应的业务功能处理进程,此时进程状态表中的记录仍然是老版本进程的记录,转发控制组件依然参考进程状态表中的记录正常运行;(d).当业务进程控制组件收到新版本业务功能处理进程的注册消息后,立即通过原子操作更新进程状态表中的记录,将记录中的业务功能处理进程标识内容更新为新版本进程的信息,根据步骤b中记录下的在局部变量中的老版本的业务功能处理进程标识,发送进程退出消息给老版本业务功能处理进程;老版本业务功能处理进程在处理完消息队列中的业务请求消息后,开始处理退出消息,进行相关的退出准备,释放相应的内存后,老版本业务进程退出;(e).重复b到d步骤,直到整个进程状态表中的记录遍历处理完成,将进程状态表中的目标版本字段的数值赋值给当前版本字段,更新操作完成。 |