一种基于ZK服务器的消息订阅方法及装置制造方法及图纸

技术编号:34389449 阅读:29 留言:0更新日期:2022-08-03 21:16
本说明书实施例公开了一种基于ZK服务器的消息订阅方法及装置,消息发布端和消息订阅端分别在ZK服务器注册消息发布节点和消息订阅节点,对ZK服务器中各消息发布节点和各消息订阅节点的动态进行监听,获取实时的消息发布端列表和消息订阅端列表;获取消息发布端列表实时对应的消息发布主题列表;根据消息发布主题列表和消息订阅端列表生成消息订阅策略;将消息订阅策略广播给各消息订阅端,使得各消息订阅端根据消息订阅策略订阅消息主题列表中包含的待订阅消息主题。本说明书实施例提供的基于ZK服务器的消息订阅方法及装置,能够动态订阅消息主题,各消息订阅端也不会因为新增消息主题或订阅更高层次的消息主题而造成系统或性能不稳定。或性能不稳定。或性能不稳定。

【技术实现步骤摘要】
一种基于ZK服务器的消息订阅方法及装置


[0001]本说明书实施例涉及通讯
,尤其涉及一种基于ZK服务器的消息订阅方法及装置。

技术介绍

[0002]MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,消息发布端、消息订阅端通过MQTT协议与MQTT中间件服务器连接,消息发布端往MQTT中间件服务器上的消息主题中发布消息,只有消息订阅端订阅MQTT中间件服务器上相应的消息主题,消息订阅端才能订阅到消息发布端发布的消息,以此达到消息发布端、消息订阅端的通信。
[0003]此消息主题为消息订阅端与消息发布端事先定义的应用程序消息的标签,当消息发布端新增消息主题时,消息订阅端需要重启程序来订阅新增的消息主题或者订阅更高层次的消息主题,这样大大降低了整个系统的稳定性及性能。

技术实现思路

[0004]有鉴于此,本说明书实施例提供了一种基于ZK服务器的消息订阅方法及装置,用于解决现有技术中消息订阅端新增消息主题或订阅更高层次的消费主题带来的系统不稳定及性能问题。
[0005]本说明书实施例采用下述技术方案:
[0006]本说明书实施例提供一种基于ZK服务器的消息订阅方法,各消息发布端和各消息订阅端分别在所述ZK服务器注册消息发布节点和消息订阅节点,所述方法包括:
[0007]对所述ZK服务器中各所述消息发布节点和各所述消息订阅节点的动态进行监听,以根据监听结果,获取实时的消息发布端列表和消息订阅端列表;
[0008]获取所述消息发布端列表实时对应的消息发布主题列表;
[0009]根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略;
[0010]将所述消息订阅策略广播给各所述消息订阅端,使得各所述消息订阅端根据所述消息订阅策略从MQTT服务器中订阅所述消息主题列表中包含的待订阅消息主题。
[0011]进一步的,对所述ZK服务器中各所述消息发布节点和各所述消息订阅节点的动态进行监听,包括:
[0012]对各所述消息发布节点和各所述消息订阅节点的上下线信息进行监听,以获取实时的消息发布端列表和消息订阅端列表。
[0013]进一步的,获取所述消息发布端列表实时对应的消息发布主题列表,包括:
[0014]当监听到新增上线的消息发布节点时,将对应新增的消息发布主题加入到所述消息发布主题列表中;
[0015]或者,当监听到新增下线的消息发布节点时,将对应的消息发布主题从所述消息发布主题列表中删除。
[0016]进一步的,根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略,包括:
[0017]当监听到新增下线的消息发布节点时,从所述消息订阅端列表中确定已订阅所述新增下线的消息发布节点对应的消息发布主题的消息订阅端;
[0018]根据所述确定的消息订阅端和所述新增下线的消息发布节点对应的消息发布主题生成所述消息订阅策略,使得所述确定的消息订阅端取消订阅所述新增下线的消息发布节点对应的消息发布主题,以释放系统资源。
[0019]进一步的,根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略,包括:
[0020]根据所述消息发布主题列表中所包含的待订阅消息主题的数量、和所述消息订阅端列表中各所述消息订阅端的负载信息生成所述消息订阅策略。
[0021]进一步的,根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略,包括:
[0022]根据预设的选举机制,从ZK服务器的各消息订阅节点中选举出消息订阅主节点;
[0023]所述消息订阅主节点根据所述消息发布主题列表和所述消息订阅端列表,利用负载均衡算法生成所述消息订阅策略,以将所述待订阅消息主题均衡分配给各所述消息订阅节点。
[0024]进一步的,将所述消息订阅策略广播给各所述消息订阅端,包括:
[0025]所述消息订阅主节点将所述消息订阅策略广播给各所述消息订阅端,使得各所述消息订阅端根据所述消息订阅策略从MQTT服务器中均衡订阅各自需要订阅的待订阅消息主题。
[0026]进一步的,根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略,包括:
[0027]获取所述消息发布主题列表中包括的待订阅消息主题的特征信息;
[0028]根据所述特征信息从所述消息订阅端列表中选择需要订阅所述待订阅消息主题的消息订阅节点;
[0029]根据选择的所述消息订阅节点和所述特征信息生成所述消息订阅策略。
[0030]进一步的,将所述消息订阅策略广播给各所述消息订阅端,包括:
[0031]将所述消息订阅策略广播给选择的所述消息订阅节点对应的消息订阅端,使得所述消息订阅端根据所述消息订阅策略从MQTT服务器中订阅所述待订阅消息主题。
[0032]本说明书实施例还提供一种基于ZK服务器的消息订阅装置,各消息发布端和各消息订阅端分别在所述ZK服务器注册消息发布节点和消息订阅节点,所述装置包括:
[0033]监听模块,对所述ZK服务器中各所述消息发布节点和各所述消息订阅节点的动态进行监听,以根据监听结果,获取实时的消息发布端列表和消息订阅端列表;
[0034]获取模块,获取所述消息发布端列表实时对应的消息发布主题列表;
[0035]策略生成模块,根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略;
[0036]广播模块,将所述消息订阅策略广播给各所述消息订阅端,使得各所述消息订阅端根据所述消息订阅策略从MQTT服务器中订阅所述消息主题列表中包含的待订阅消息主
题。
[0037]本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0038]各消息发布端和各消息订阅端分别在ZK服务器注册消息发布节点和消息订阅节点,通过对ZK服务器中各消息发布节点和各消息订阅节点的动态进行监听,以获取实时的消息发布端列表和消息订阅端列表,这样,就可以对消息发布端和消息订阅端的上下线信息进行监听,获取消息发布端列表实时对应的消息发布主题列表,并根据消息发布主题列表和消息订阅端列表生成消息订阅策略,将消息订阅策略广播给各消息订阅端,使得各消息订阅端根据消息订阅策略从MQTT服务器中订阅消息主题列表中包含的待订阅消息主题。
[0039]这样,消息订阅端可以通过ZK服务器动态监控消息发布节点数量和发布消息主题的变化,实现了动态订阅消息发布主题,各消息订阅端也不会因为新增消息主题或者订阅更高层次的消息主题而需要重启消息订阅程序,而造成系统或者性能不稳定。
附图说明
[0040]此处所说明的附图用来提供对本说明书实施例的进一步理解,构成本说明书实施例的一部分,本说明书的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0041]图1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于ZK服务器的消息订阅方法,其特征在于,各消息发布端和各消息订阅端分别在所述ZK服务器注册消息发布节点和消息订阅节点,所述方法包括:对所述ZK服务器中各所述消息发布节点和各所述消息订阅节点的动态进行监听,以根据监听结果,获取实时的消息发布端列表和消息订阅端列表;获取所述消息发布端列表实时对应的消息发布主题列表;根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略;将所述消息订阅策略广播给各所述消息订阅端,使得各所述消息订阅端根据所述消息订阅策略从MQTT服务器中订阅所述消息主题列表中包含的待订阅消息主题。2.如权利要求1所述的方法,其特征在于,对所述ZK服务器中各所述消息发布节点和各所述消息订阅节点的动态进行监听,包括:对各所述消息发布节点和各所述消息订阅节点的上下线信息进行监听,以获取实时的消息发布端列表和消息订阅端列表。3.如权利要求2所述的方法,其特征在于,获取所述消息发布端列表实时对应的消息发布主题列表,包括:当监听到新增上线的消息发布节点时,将对应新增的消息发布主题加入到所述消息发布主题列表中;或者,当监听到新增下线的消息发布节点时,将对应的消息发布主题从所述消息发布主题列表中删除。4.如权利要求3所述的方法,其特征在于,根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略,包括:当监听到新增下线的消息发布节点时,从所述消息订阅端列表中确定已订阅所述新增下线的消息发布节点对应的消息发布主题的消息订阅端;根据所述确定的消息订阅端和所述新增下线的消息发布节点对应的消息发布主题生成所述消息订阅策略,使得所述确定的消息订阅端取消订阅所述新增下线的消息发布节点对应的消息发布主题,以释放系统资源。5.如权利要求1所述的方法,其特征在于,根据所述消息发布主题列表和所述消息订阅端列表生成消息订阅策略,包括:根据所述消息发布主题列表中所包含的待订阅消息主题的数量、和所述消息订阅端列表中各所述消息订阅端的负载信息生成所述消息订阅策略。6.如权利要求1所述的...

【专利技术属性】
技术研发人员:刘科浩熊超
申请(专利权)人:云控智行科技有限公司
类型:发明
国别省市:

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

1