发布及订阅服务的处理方法、装置及电子设备制造方法及图纸

技术编号:25762047 阅读:22 留言:0更新日期:2020-09-25 21:09
本公开实施例公开了一种发布及订阅服务的处理方法、装置、电子设备及计算机可读存储介质,涉及云计算领域。该方法由代理服务器集群中的一个代理服务器执行,代理服务器集群包括多个代理服务器,多个代理服务器分别与同一个中间服务器连接,该方法包括:接收发布方客户端发布的预定主题的第一发布消息;将包含第一发布消息的第一同步信息发送至中间服务器,以供中间服务器将第一同步信息发送到代理服务器集群的多个代理服务器,其中,第一同步信息包含:第一发布消息、第一发布消息对应主题的名称、代理服务器的自身名称。本公开实施例可以实现客户端的发布消息在多代理服务器之间共享。

【技术实现步骤摘要】
发布及订阅服务的处理方法、装置及电子设备
本申请涉及发布及订阅
,尤其涉及一种发布及订阅服务的处理方法、装置、电子设备及计算机可读存储介质。
技术介绍
发布及订阅是一种消息范式,消息的发送者,即发布方,不会将消息直接发送给特定的接收者,即订阅方,而是通过中央通信点,例如消息队列遥测传输(MessageQueuingTelemetryTransport,MQTT)代理进行发送。MQTT代理负责调度发布方和合法订阅方之间的所有消息。如图1所示,图1为现有发布及订阅服务的代理服务器通信架构图,向代理服务器发布消息的每个发布方客户端都在消息中包含一个主题,主题是代理服务器的路由信息。每个想要接收消息的订阅方客户端会订阅某个主题,并且代理服务将具有匹配订阅主题的所有消息传递给订阅方客户端。为保证MQTT代理的可靠性,目前通用做法是MQTT代理的服务端使用心跳检查等手段监测所有代理服务器,并指定唯一可用代理服务器对外提供统一服务,即使用单代理服务器提供服务。但当前代理服务器故障时,其所有已连接客户端设备会断开,服务端需重新分配可用代理服务器供客户端连接。现有还存在使用多代理服务器对外提供服务的手段,这样虽可服务更多的客户端,但各代理服务器之间消息不互通,当有订阅与被订阅关系的两个客户端分布在不同代理服务器时,订阅者无法收到发布者发出的消息,导致消息丢失。同时因客户端分布在不同的节点,难以进行统一管理和运维。
技术实现思路
本公开实施例的目的在于提供一种发布及订阅服务的处理方法、装置、电子设备及计算机可读存储介质,以实现客户端的发布消息在多代理服务器之间同步。根据本公开实施例的第一方面,提供了一种发布及订阅服务的处理方法,所述方法由代理服务器集群中的一个代理服务器执行,所述代理服务器集群包括多个代理服务器,所述多个代理服务器分别与同一个中间服务器连接,所述方法包括:接收发布方客户端发布的预定主题的第一发布消息;将包含所述第一发布消息的第一同步信息发送至所述中间服务器,以供所述中间服务器将所述第一同步信息发送到所述代理服务器集群的多个代理服务器,其中,所述第一同步信息包含:所述第一发布消息、所述第一发布消息对应主题的名称、所述代理服务器的自身名称。可选地,在所述接收发布方客户端发布的预定主题的第一发布消息之后,所述方法还包括:查找在该代理服务器上订阅所述发布消息对应主题的订阅方客户端;以及发送所述发布消息至所述订阅方客户端。可选地,所述方法还包括:接收所述中间服务器发送的第二同步信息,其中,所述第二同步信息由所述代理服务器集群的另外一个代理服务器发送给所述中间服务器,所述第二同步信息包含:第二发布消息、所述第二发布消息对应主题的名称、发布所述第二发布消息的代理服务器的名称;发送所述第二发布消息至订阅所述第二发布消息对应主题的订阅方客户端。可选地,在发送所述第二发布消息至订阅所述发布消息对应主题的订阅方客户端之前,所述方法还包括:获取所述第二同步信息中所述发布所述第二发布消息的代理服务器的名称;确定所述发布所述第二发布消息的代理服务器的名称与自身名称是否相同;在确定所述发布所述第二发布消息的代理服务器的名称与自身名称不同的情况下,获取所述第二同步信息中所述第二发布消息对应主题的名称;查找向自身订阅所述第二发布消息对应主题的订阅方;执行所述发送所述第二发布消息至订阅所述第二发布消息对应主题的订阅方客户端的操作。可选地,所述方法还包括:在确定所述发布所述第二发布消息的代理服务器的名称与自身名称相同的情况下,不处理所述第二发布消息。根据本公开实施例的第二方面,提供了一种发布及订阅服务的处理方法,所述方法由一个中间服务器执行,所述中间服务器与代理服务器集群的多个代理服务器分别连接,所述方法包括:接收一个代理服务器发送的同步信息,所述同步信息包含发布消息、所述发布消息对应主题的名称、发布所述消息的代理服务器的名称;将接收的同步信息发送到所述多个代理服务器中的全部或部分代理服务器,以供所述全部或部分代理服务器将所述同步信息包含的发布信息,发送至订阅所述发布消息对应主题的订阅方客户端,其中,所述订阅方客户端向至少一个代理服务器订阅信息。可选地,在所述将接收的同步信息发送到所述多个代理服务器中的全部或部分代理服务器之前,所述方法还包括:接收一个代理服务器发送的选择消息同步服务的确认请求;记录所述选择消息同步服务的代理服务器名称;所述将接收的同步信息发送至所述多个代理服务器中的全部或部分代理服务器包括:根据所述选择消息同步服务的代理服务器名称的记录,将所述同步信息发送至选择所述消息同步服务的每个代理服务器。根据本公开实施例的第三方面,提供了一种发布及订阅服务的处理装置,所述装置执行于代理服务器集群中的一个代理服务器,所述代理服务器集群包括多个代理服务器,所述多个代理服务器分别与同一个中间服务器连接,所述装置包括:第一接收模块,用于接收发布方客户端发布的预定主题的第一发布消息;第一发送模块,用于将包含所述第一发布消息的第一同步信息发送至所述中间服务器,以供所述中间服务器将所述第一同步信息发送到所述代理服务器集群的多个代理服务器,其中,所述第一同步信息包含:所述第一发布消息、所述第一发布消息对应主题的名称、所述代理服务器的自身名称。可选地,所述装置还包括订阅消息发送模块,用于:查找在该代理服务器上订阅所述发布消息对应主题的订阅方客户端;以及发送所述发布消息至所述订阅方客户端。可选地,所述装置还包括:第二接收模块,用于接收所述中间服务器发送的第二同步信息,其中,所述第二同步信息由所述代理服务器集群的另外一个代理服务器发送给所述中间服务器,所述第二同步信息包含:第二发布消息、所述第二发布消息对应主题的名称、发布所述第二发布消息的代理服务器的名称;第二发送模块,用于发送所述第二发布消息至订阅所述第二发布消息对应主题的订阅方客户端。可选地,所述装置还包括检测模块,所述检测模块包括:获取单元,用于获取所述第二同步信息中所述发布所述第二发布消息的代理服务器的名称;确定单元,用于确定所述发布所述第二发布消息的代理服务器的名称与自身名称是否相同;第一处理单元,用于在确定所述发布所述第二发布消息的代理服务器的名称与自身名称不同的情况下,获取所述第二同步信息中所述第二发布消息对应主题的名称;查找向自身订阅所述第二发布消息对应主题的订阅方;执行所述发送所述第二发布消息至订阅所述第二发布消息对应主题的订阅方客户端的操作。可选地,所述检测模块还包括:第二处理单元,用于在确定所述发布所述第二发布消息的代理服务器的名称与自身名称相同的情况下,不处理所述第二发布消息。根据本公开实施例的第四方面,提供了一种发布及订阅服务的处理装置,所述装置执行于一个本文档来自技高网...

【技术保护点】
1.一种发布及订阅服务的处理方法,其特征在于,所述方法由代理服务器集群中的一个代理服务器执行,所述代理服务器集群包括多个代理服务器,所述多个代理服务器分别与同一个中间服务器连接,所述方法包括:/n接收发布方客户端发布的预定主题的第一发布消息;/n将包含所述第一发布消息的第一同步信息发送至所述中间服务器,以供所述中间服务器将所述第一同步信息发送到所述代理服务器集群的多个代理服务器,其中,所述第一同步信息包含:所述第一发布消息、所述第一发布消息对应主题的名称、所述代理服务器的自身名称。/n

【技术特征摘要】
1.一种发布及订阅服务的处理方法,其特征在于,所述方法由代理服务器集群中的一个代理服务器执行,所述代理服务器集群包括多个代理服务器,所述多个代理服务器分别与同一个中间服务器连接,所述方法包括:
接收发布方客户端发布的预定主题的第一发布消息;
将包含所述第一发布消息的第一同步信息发送至所述中间服务器,以供所述中间服务器将所述第一同步信息发送到所述代理服务器集群的多个代理服务器,其中,所述第一同步信息包含:所述第一发布消息、所述第一发布消息对应主题的名称、所述代理服务器的自身名称。


2.根据权利要求1所述的方法,其特征在于,在所述接收发布方客户端发布的预定主题的第一发布消息之后,所述方法还包括:
查找在该代理服务器上订阅所述发布消息对应主题的订阅方客户端;以及
发送所述发布消息至所述订阅方客户端。


3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述中间服务器发送的第二同步信息,其中,所述第二同步信息由所述代理服务器集群的另外一个代理服务器发送给所述中间服务器,所述第二同步信息包含:第二发布消息、所述第二发布消息对应主题的名称、发布所述第二发布消息的代理服务器的名称;
发送所述第二发布消息至订阅所述第二发布消息对应主题的订阅方客户端。


4.根据权利要求3所述的方法,其特征在于,在发送所述第二发布消息至订阅所述发布消息对应主题的订阅方客户端之前,所述方法还包括:
获取所述第二同步信息中所述发布所述第二发布消息的代理服务器的名称;
确定所述发布所述第二发布消息的代理服务器的名称与自身名称是否相同;
在确定所述发布所述第二发布消息的代理服务器的名称与自身名称不同的情况下,获取所述第二同步信息中所述第二发布消息对应主题的名称;
查找向自身订阅所述第二发布消息对应主题的订阅方;
执行所述发送所述第二发布消息至订阅所述第二发布消息对应主题的订阅方客户端的操作。


5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在确定所述发布所述第二发布消息的代理服务器的名称与自身名称相同的情况下,不处理所述第二发布消息。


6.一种发布及订阅服务的处理方法,其特征在于,所述方法由一个中间服务器执行,所述中间服务器与代理服务器集群的多个代理服务器分别连接,所述方法包括:
接收一个代理服务器发送的同步信息,所述同步信息包含发布消息、所述发布消息对应主题的名称、发布所述消息的代理服务器的名称;
将接收的同步信息发送到所述多个代理服务器中的全部或部分代理服务器,以供所述全部或部分代理服务器将所述同步信息包含的发布信息,发送至订阅所述发布消息对应主题的订阅方客户端,其中,所述订阅方客户端向至少一个代理服务器订阅信息。


7.根据权利要求6所述的方法,其特征在于,在所述将接收的同步信息发送到所述多个代理服务器中的全部或部分代理服务器之前,所述方法还包括:
接收一个代理服务器发送的选择消息同步服务的确认请求;
记录所述选择消息同步服务的代理服务器名称;
所述将接收的同步信息发送至所述多个代理服务器中的全部或部分代理服务器包括:
根据所述选择消息同步服务的代理服务器名称的记录,将所述同步信息发送至选择所述消息同步服务的每个代理服务器。


8.一种发布及订阅服务的处理装置,其特征在于,所述装置执行于代理服务器集群中的一个代理服务器,所述代理服务器集群包括多个代理服务器,所述多个代理服务器分别与同一个中间服务器连接,所述装置包括:
...

【专利技术属性】
技术研发人员:胡佳
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:北京;11

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

1