消息总线系统技术方案

技术编号:32345403 阅读:12 留言:0更新日期:2022-02-20 01:59
本申请提供一种消息总线系统,其包括数据总线模块,所述数据总线模块包括三个总线节点组,任意所述总线节点组包括三个总线节点,所述三个总线节点中任意两个总线节点之间双向通信连接,所述三个总线节点组中各有一个总线节点作为主总线节点,三个主总线节点中任意两个主总线节点之间双向通信连接。采用该消息总线系统能够提高容错率。线系统能够提高容错率。线系统能够提高容错率。

【技术实现步骤摘要】
消息总线系统


[0001]本申请属于中间件
,具体涉及一种消息总线系统。

技术介绍

[0002]消息总线系统中通常具有一个或多个总线节点(也称节点、代理主机、Broker),如何设计这些总线节点之间的拓扑结构从而提高容错性,是本领域技术人员持续推动解决的技术问题。

技术实现思路

[0003]本申请的目的在于针对现有技术的不足之处,提供一种消息总线系统。
[0004]为解决上述技术问题,本申请采用如下技术方案:一种消息总线系统,包括:数据总线模块,所述数据总线模块包括三个总线节点组,任意所述总线节点组包括三个总线节点,所述三个总线节点中任意两个总线节点之间双向通信连接,所述三个总线节点组中各有一个总线节点作为主总线节点,三个主总线节点中任意两个主总线节点之间双向通信连接。
[0005]可选地,所述三个总线节点中任意两个总线节点之间存在两个相反方向的数据传输线,所述三个主总线节点之间为TCP连接。
[0006]可选地,任意所述总线节点组中,默认编号最小的总线节点作为主总线节点,并且在所述主总线节点宕机时,剩余总线节点中编号最小的总线节点作为主总线节点;或者任意所述总线节点组中,默认编号最大的总线节点作为主总线节点,并且在所述主总线节点宕机时,剩余总线节点中编号最大的总线节点作为主总线节点。
[0007]可选地,所述总线节点组中,主总线节点同步保存所述数据总线模块的服务节点连接表、所述数据总线模块的总线节点连接表,其余总线节点同步保存所述总线节点组的服务节点连接表、所述总线节点组的总线节点连接表。
[0008]可选地,任意所述总线节点组中,每个总线节点每隔第一设定时长监听相邻两个总线节点的心跳,如距离上一次监听到一相邻总线节点的心跳超出第二设定时长后仍未监听到所述总线节点的心跳,则断开与所述总线节点的通信连接,并更新全部总线节点所保存的服务节点连接表、总线节点连接表,所述第二设定时长大于所述第一设定时长。
[0009]可选地,还包括:至少一代理节点,每个所述代理节点与一个总线节点双向通信连接;所述总线节点用于连接服务节点,所述代理节点用于连接消费节点;所述代理节点用于保存其所连接的消费节点的订阅信息,所述总线节点用于从所连接的服务节点接收消息并转发至全部所述代理节点,所述代理节点用于在接收到的新消息与其自身保存的订阅信息匹配成功的情况下,将接收到的新消息发送至匹配成功的订阅信息对应的消费节点。
[0010]可选地,所述总线系统收发消息的消息格式包括:第一消息头和消息体;所述第一消息头包括源总线节点编号和目标总线节点编号。
[0011]可选地,所述第一消息头还包括:源总线节点组标识和目标总线节点组标识。
[0012]可选地,所述消息格式还包括:扩展头标志和第二消息头,所述扩展头标志标识所述消息总线系统是否具有代理节点;如所述消息总线结构具有代理节点,则所述第二消息头包括消息源句柄号和消息源用户号。
[0013]可选地,所述消息格式还包括第三消息头,所述第三消息头包括总线节点接收消息时间和总线节点应答消息时间。
[0014]可选地,所述消息格式中,字符采用UTF-8协议,字节序采用BIG-ENDIAN网络字节序。
[0015]与现有技术相比,本申请的有益效果为:每个总线节点组内部,三个总线节点彼此之间双向通信构成一个总线节点组,总线节点组内存在两个方向的闭环通信回路;即使其中一个总线节点到另一个总线节点的通信中断,还存在另一个方向的闭环通信回路,总线节点组内部三个总线节点彼此之间的通信也不受影响;基于相同的原理,三个主总线节点之间也是存在两个方向的闭环通信回路;如此,整个消息总线系统的容错性高。
附图说明
[0016]图1是本申请的实施例提供的数据总线模块的结构示意图。
[0017]图2是本申请的实施例提供的消息总线系统的结构示意图。
[0018]图3是本申请的实施例中消息推送的流程图。
[0019]图4是本申请的实施例提供的消息格式的结构示意图。
具体实施方式
[0020]在本申请中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
[0021]另外还需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0022]下面结合附图所示的实施例对本申请作进一步说明。
[0023]如附图1所示,本申请的实施例提出一种消息总线系统,包括:数据总线模块1,所述数据总线模块1包括三个总线节点组,任意所述总线节点组包括三个总线节点,所述三个总线节点中任意两个总线节点之间双向通信连接,所述三个总线节点组中各有一个总线节点作为主总线节点,三个主总线节点中任意两个主总线节点之间双向通信连接。
[0024]每个总线节点组内部,三个总线节点彼此之间双向通信构成一个总线节点组,总线节点组内存在两个方向的闭环通信回路;即使其中一个总线节点到另一个总线节点的通信中断,还存在另一个方向的闭环通信回路,总线节点组内部三个总线节点彼此之间的通信也不受影响;基于相同的原理,三个主总线节点之间也是存在两个方向的闭环通信回路;如此,整个消息总线系统的容错性高。
[0025]需要说明的是,消息总线系统中可以设置一个图1所示的数据总线模块。也可以是设置3个图1所示的数据中心模块,3个数据总线模块各挑选一个主总线节点彼此之间双向通信连接。
[0026]可选地,所述三个总线节点中任意两个总线节点之间存在两个相反方向的数据传
输线,所述三个主总线节点之间为TCP连接。
[0027]例如两个总线节点之间通过两根网线实现双向数据传输,一根网线负责一个方向的数据传输。即使一根网线被误拔掉,总线节点组内的通信也不受影响。
[0028]主总线节点之间为软连接,可靠性更强,且能够实现分布式的消息总线系统。
[0029]可选地,任意所述总线节点组中,默认编号最小的总线节点作为主总线节点,并且在所述主总线节点宕机时,剩余总线节点中编号最小的总线节点作为主总线节点;或者任意所述总线节点组中,默认编号最大的总线节点作为主总线节点,并且在所述主总线节点宕机时,剩余总线节点中编号最大的总线节点作为主总线节点。
[0030]即由主总线节点负责总线节点组之间的通信。每个总线节点,不论其是否为主总线节点,都可以连接一个或多个消费节点以及一个或多个服务节点。主总线节点的选取是自动完成的,系统容错性高。在一个总线节点组内,假定主总线节点宕机,其中一个非主总线节点可以升级为主总线节点,与原来的主总线节点通信连接的服务节点会自动与其他两个总线节点建立通信,整个系统的正常运转也不会受到影响。
[0031]可选地,所述总线节点组中,主总线节点同步保存所述数据总线模块的服本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种消息总线系统,其特征在于,包括:数据总线模块,所述数据总线模块包括三个总线节点组,任意所述总线节点组包括三个总线节点,所述三个总线节点中任意两个总线节点之间双向通信连接,所述三个总线节点组中各有一个总线节点作为主总线节点,三个主总线节点中任意两个主总线节点之间双向通信连接。2.根据权利要求1所述的消息总线系统,其特征在于,所述三个总线节点中任意两个总线节点之间存在两个相反方向的数据传输线,所述三个主总线节点之间为TCP连接。3.根据权利要求1所述的消息总线系统,其特征在于,任意所述总线节点组中,默认编号最小的总线节点作为主总线节点,并且在所述主总线节点宕机时,剩余总线节点中编号最小的总线节点作为主总线节点;或者任意所述总线节点组中,默认编号最大的总线节点作为主总线节点,并且在所述主总线节点宕机时,剩余总线节点中编号最大的总线节点作为主总线节点。4.根据权利要求1所述的消息总线系统,其特征在于,所述总线节点组中,主总线节点同步保存所述数据总线模块的服务节点连接表、所述数据总线模块的总线节点连接表,其余总线节点同步保存所述总线节点组的服务节点连接表、所述总线节点组的总线节点连接表。5.根据权利要求1所述的消息总线系统,其特征在于,任意所述总线节点组中,每个总线节点每隔第一设定时长监听相邻两个总线节点的心跳,如距离上一次监听到一相邻总线节点的心跳超出第二设定时长后仍未监听到所述总线节点的心跳,则断开与所述总线节点的通信连接,并更新全部总线节点所保存的服务节点连...

【专利技术属性】
技术研发人员:陆中兵姜文清王垚岳雨晴
申请(专利权)人:上海国际货币经纪有限责任公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1