[发明专利]一种基于Spread分布式应用系统的热加载方法有效
申请号: | 201210581392.6 | 申请日: | 2012-12-27 |
公开(公告)号: | CN103064711B | 公开(公告)日: | 2016-03-16 |
发明(设计)人: | 陈明;谢宗周;郭子慧 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 spread 分布式 应用 系统 加载 方法 | ||
技术领域
本发明涉及分布式应用系统技术领域,具体涉及一种基于Spread消息 总线的分布式应用系统的热加载技术。
背景技术
分布式应用系统,是目前在企业级应用中普遍采用的一种软件系统架构, 应用系统按功能被切分成多个模块,部署在若干独立的计算机上,模块之间 通过某种消息机制进行信息交互,协同完成工作。
Spread,是一套开源工具包,可以作为一个分布式应用系统的消息总线, 提供高可靠性、高性能、支持异构环境的分布式分组消息传递,详见 http://www.spread.org/。在一个典型的环境中,通常每台服务器上运行一 个Spreadserver,各服务器上的应用本地连接server,发送消息到指定组, 而这台服务器上的Spreadserver会传递消息给其他订阅该组消息的应用。
由于Spread作为消息总线所体现的突出优势,因此,基于Spread的分 布式应用系统是目前广泛采用的一种分布式应用系统架构。典型的一类分布 式应用系统如图1所示,就是将各接口模块和内部处理(非接口)模块分离, 通过Spread消息总线的分组传递实现模块之间的数据交互。由于这种架构 具有高度的灵活性且模块划分明晰,因此对于那些接口众多、业务逻辑变化 较快的应用系统来说特别适用。这类应用有一个特点:接口模块相对稳定, 内部业务处理(非接口)模块由于业务上“随需而变”的要求,升级比较频 繁。传统的内部处理模块程序升级是先停止原模块进程,然后启动新模块进 程,这种升级方式必然导致应用的中断,对于那些有7*24小时严格要求的 企业级应用来说是无法容忍的。
发明内容
本发明所要解决的技术问题是为基于Spread消息总线的分布式应用系 统,提供一种新的内部处理(非接口)模块的程序热加载方法,用于实现不 中断业务应用的程序升级。
本发明解决上述技术问题的技术方案如下:一种基于Spread分布式应 用系统的热加载方法,包括以下步骤:
步骤1:部署常驻在内存的升级消息监听模块,并将其连接至指定的 Spread消息组;
步骤2:启动新版本模块,将新版本模块连接到一个新的Spread消息组, 并让新版本模块与原版本模块并运行;
步骤3:启动升级消息发布模块,发送原版本模块的升级消息至升级消 息监听模块;
步骤4:升级消息监听模块接收到原版本模块的升级消息后,将原版本 模块对应的Spread消息组名切换成新版本模块对应的Spread消息组名,并 将切换结果反馈给升级消息发布模块;
步骤5:升级消息发布模块收到所有反馈结果后,提示升级成功,并退 出运行;
步骤6:在确保原版本模块将Spread消息组切换前收到的所有消息处理 完成后,停止原版本模块的运行,完成热加载过程。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤3具体包括:启动升级消息发布模块,读取原版本模 块信息,将原版本模块信息组成原版本模块的升级消息,并发送至升级消息 监听模块。
进一步,所述原版本模块信息包括原版本模块连接的Spread消息组在 共享内存中的索引名和新版本模块连接的Spread消息组名。
进一步,所述方法中各模块间通信的数据保存在共享内存或共享物理存 储机制中,且所述共享物理机制包括数据库和文件。
进一步,执行所述步骤4后,还包括:向原版本模块发送消息时,会根 据共享内存中更新的新版本模块连接Spread消息组名,将消息由Spread消 息总线转发到新版本模块。
进一步,所述步骤5中升级消息发布模块将收到的反馈结果打印到控制 台上。
本发明只针对分布式系统内部处理模块,即非接口模块,因为其基本原 理是通过切换模块间通信的Spread消息组来完成进程切换,而接口模块与 外部系统的通信协议是不确定的,因此本发明不适用于接口模块。
在上述技术方案中,本发明中涉及的各模块相当于应用进程。
本发明的有益效果是:主要有以下几个方面的特点:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210581392.6/2.html,转载请声明来源钻瓜专利网。