分布式消息处理方法和设备技术

技术编号:26653402 阅读:62 留言:0更新日期:2020-12-09 00:57
本发明专利技术公开了一种分布式消息处理方法和设备,所述方法通过消息发布者将发布者信息和Topic名称发送至全局消息管理器,全局消息管理器对发布者信息和Topic名称进行存储;消息订阅者发送目标Topic名称至全局消息管理器;消息订阅者根据主题序号和进程文件序号确定目标发布者,将异步拉消息请求发送至目标发布者,并接收目标发布者返回的消息序列,根据消息序列进行消息上报;消息可以被持久化,订阅者只用获取和自己关注的消息,消息的过滤是直接在发布者中就过滤了,不用拉取所有消息后再在订阅者中过滤,减少了带宽;不仅保证了网管功能的正确性和可靠性,更加保证了功能处理的及时性和高效性。

【技术实现步骤摘要】
分布式消息处理方法和设备
本专利技术电信传输网络管理领域,尤其涉及一种分布式消息处理方法和设备。
技术介绍
在电信传输网管中,很多功能都依赖于消息上报,如设备(如单板)上报了一个紧急告警,在网管服务中处理后,需要在网管界面上对应的单板上显示紧急告警图标提醒用户,并通过告警发生告知用户。消息机制无论是在网管服务之间,还是网管服务和网管客户端都之间都应用广泛,传统的采用消息中间件的方式,一是不能保证消息是否准确到达到订阅者了,因为发布者只是把消息发给了统一的消息发布服务;二是消息存在丢失的情况,因为当发布服务异常时消息就丢失了,如公共对象请求代理体系结构(CommonObjectRequestBrokerArchitecture,CORBA)的通知服务NotifyService就经常存在丢消息的情况;三是消息量问题,当管理容量增加时,消息量也会变大,订阅者会收到很多不必要的消息,而实际上某个告警实例进程只用处理自己管理的网元对象的变化消息;四是采用推模式方式消息上报,让网络变得更加复杂,因为必须在订阅者和消息中间件之间增加反向连接,但是为了保证网络安全,一般不使用反向连接。
技术实现思路
本专利技术的主要目的在于提供一种分布式消息处理方法和设备,旨在解决现有技术中消息传送准确性低且容易丢失,消息量较大时造成网络复杂化的技术问题。第一方面,本专利技术提供一种分布式消息处理方法,所述分布式消息处理方法包括以下步骤:消息发布者将发布者信息和Topic名称发送至全局消息管理器,所述全局消息管理器对所述发布者信息和所述Topic名称进行存储;消息订阅者发送目标Topic名称至所述全局消息管理器,所述全局消息管理器返回所述目标Topic名称对应的主题序号和进程文件序号至所述消息订阅者;所述消息订阅者根据所述主题序号和所述进程文件序号确定目标发布者,将异步拉消息请求发送至所述目标发布者,并接收所述目标发布者返回的消息序列,根据所述消息序列进行消息上报。可选地,所述消息发布者将发布者信息和Topic名称发送至全局消息管理器,所述全局消息管理器对所述发布者信息和所述Topic名称进行存储,包括:消息发布者采用Topic创建发布者对象,并获取Topic名称和所述发布者对象对应的消息发布进程服务名称;将所述消息发布进程服务名称作为发布者信息,将所述发布者信息和所述Topic名称发送至全局消息管理器;所述全局消息管理器对所述发布者信息和所述Topic名称进行存储。可选地,所述消息发布者采用Topic创建发布者对象之后,所述分布式消息处理方法还包括:当有消息需要发送时,所述消息发布者获得所述消息的类型和消息Topic名称;所述消息发布者采用所述发布者对象发送消息,所述发布者对象根据所述类型和所述消息Topic名称对所述消息进行不同的处理。可选地,所述消息发布者采用所述发布者对象发送消息,所述发布者对象根据所述类型和所述消息Topic名称对所述消息进行不同的处理,包括:所述消息发布者采用所述发布者对象发送消息;所述发布者对象根据所述类型和所述消息Topic名称确定所述消息为文件消息时,将所述文件消息存储至独立的文件中;所述发布者对象根据所述类型和所述消息Topic名称确定所述消息为覆盖式消息时,根据所述覆盖式消息的键对已缓存消息进行替换或增加。可选地,所述消息订阅者发送目标Topic名称至所述全局消息管理器,所述全局消息管理器返回所述目标Topic名称对应的主题序号和进程文件序号至所述消息订阅者,包括:所述消息订阅者通过目标Topic名称创建订阅对象,并发送所述目标Topic名称至所述全局消息管理器;所述全局消息管理器返回所述目标Topic名称对应的主题序号和进程文件序号至所述消息订阅者;将目标Topic名称对应的主题序号和进程文件序号记录到所述订阅对象中。可选地,所述消息订阅者根据所述主题序号和所述进程文件序号确定目标发布者,将异步拉消息请求发送至所述目标发布者,并接收所述目标发布者返回的消息序列,根据所述消息序列进行消息上报,包括:所述消息订阅者将所述主题序号和所述进程文件序号对应的发布者作为目标发布者;通过异步远程过程调用RPC接口将异步拉消息请求发送至所述目标发布者;接收所述目标发布者返回的消息序列,根据所述消息序列进行消息上报。可选地,所述通过异步远程过程调用RPC接口将异步拉消息请求发送至所述目标发布者之后,所述分布式消息处理方法还包括:获取在创建订阅对象时输入的回调对象,从所述回调对象中获取预设回调函数CallBack;将所述预设回调函数CallBack反馈至所述消息发布者。可选地,所述接收所述目标发布者返回的消息序列,根据所述消息序列进行消息上报,包括:接收所述目标发布者返回的消息序列,通过独立线程对所述消息序列进行消息上报;从所述消息序列中获得Topic数量,在所述Topic数量大于预设阈值时,增加消息上报的独立线程,根据所述独立线程对所述消息序列进行消息上报。可选地,所述消息发布者将发布者信息和Topic名称发送至全局消息管理器,所述全局消息管理器对所述发布者信息和所述Topic名称进行存储之后,所述分布式消息处理方法还包括:所述全局消息管理器为所述Topic名称分配一个唯一主题序号;所述全局消息管理器为所述发布者信息分配进程文件序号。第二方面,本专利技术还提出一种分布式消息处理设备,所述分布式消息处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式消息处理程序,所述分布式消息处理程序配置为实现如上文所述的分布式消息处理方法的步骤。本专利技术提出的分布式消息处理方法,通过消息发布者将发布者信息和Topic名称发送至全局消息管理器,所述全局消息管理器对所述发布者信息和所述Topic名称进行存储;消息订阅者发送目标Topic名称至所述全局消息管理器,所述全局消息管理器返回所述目标Topic名称对应的主题序号和进程文件序号至所述消息订阅者;所述消息订阅者根据所述主题序号和所述进程文件序号确定目标发布者,将异步拉消息请求发送至所述目标发布者,并接收所述目标发布者返回的消息序列,根据所述消息序列进行消息上报;消息发布没有统一的NotifyService,每个发布者只用关注和发布自己需要发布的消息,消息可以被持久化;订阅者只用获取和自己关注的消息,消息的过滤是直接在发布者中就过滤了,不用拉取所有消息后再在订阅者中过滤,减少了带宽;不仅保证了网管功能的正确性和可靠性,更加保证了功能处理的及时性和高效性。附图说明图1为本专利技术实施例方案涉及的硬件运行环境的设备结构示意图;图2为本专利技术分布式消息处理方法第一实施例的流程示意图;图3为本专利技术分布式消息处理方法第二实施例的流程示意图;图4为本专利技术分布式消息处理方法第三实施例的流程示意图;本文档来自技高网...

【技术保护点】
1.一种分布式消息处理方法,其特征在于,所述分布式消息处理方法包括:/n消息发布者将发布者信息和Topic名称发送至全局消息管理器,所述全局消息管理器对所述发布者信息和所述Topic名称进行存储;/n消息订阅者发送目标Topic名称至所述全局消息管理器,所述全局消息管理器返回所述目标Topic名称对应的主题序号和进程文件序号至所述消息订阅者;/n所述消息订阅者根据所述主题序号和所述进程文件序号确定目标发布者,将异步拉消息请求发送至所述目标发布者,并接收所述目标发布者返回的消息序列,根据所述消息序列进行消息上报。/n

【技术特征摘要】
1.一种分布式消息处理方法,其特征在于,所述分布式消息处理方法包括:
消息发布者将发布者信息和Topic名称发送至全局消息管理器,所述全局消息管理器对所述发布者信息和所述Topic名称进行存储;
消息订阅者发送目标Topic名称至所述全局消息管理器,所述全局消息管理器返回所述目标Topic名称对应的主题序号和进程文件序号至所述消息订阅者;
所述消息订阅者根据所述主题序号和所述进程文件序号确定目标发布者,将异步拉消息请求发送至所述目标发布者,并接收所述目标发布者返回的消息序列,根据所述消息序列进行消息上报。


2.如权利要求1所述的分布式消息处理方法,其特征在于,所述消息发布者将发布者信息和Topic名称发送至全局消息管理器,所述全局消息管理器对所述发布者信息和所述Topic名称进行存储,包括:
消息发布者采用Topic创建发布者对象,并获取Topic名称和所述发布者对象对应的消息发布进程服务名称;
将所述消息发布进程服务名称作为发布者信息,将所述发布者信息和所述Topic名称发送至全局消息管理器;
所述全局消息管理器对所述发布者信息和所述Topic名称进行存储。


3.如权利要求2所述的分布式消息处理方法,其特征在于,所述消息发布者采用Topic创建发布者对象之后,所述分布式消息处理方法还包括:
当有消息需要发送时,所述消息发布者获得所述消息的类型和消息Topic名称;
所述消息发布者采用所述发布者对象发送消息,所述发布者对象根据所述类型和所述消息Topic名称对所述消息进行不同的处理。


4.如权利要求3所述的分布式消息处理方法,其特征在于,所述消息发布者采用所述发布者对象发送消息,所述发布者对象根据所述类型和所述消息Topic名称对所述消息进行不同的处理,包括:
所述消息发布者采用所述发布者对象发送消息;
所述发布者对象根据所述类型和所述消息Topic名称确定所述消息为文件消息时,将所述文件消息存储至独立的文件中;
所述发布者对象根据所述类型和所述消息Topic名称确定所述消息为覆盖式消息时,根据所述覆盖式消息的键对已缓存消息进行替换或增加。


5.如权利要求1所述的分布式消息处理方法,其特征在于,所述消息订阅者发送目标Topic名称至所述全局消息管理器,所述全局消息管理器返回所述目标Topic名称对应的主题序号和进程文件序号至所述消息订阅者,包括:

【专利技术属性】
技术研发人员:吴平张勇
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

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

1