消息订阅方法、装置、系统、电子设备及存储介质制造方法及图纸

技术编号:24334030 阅读:29 留言:0更新日期:2020-05-29 21:18
本发明专利技术实施例提供了一种消息订阅方法、装置、系统、电子设备及存储介质。MQTT集群中的第一从服务设备按照预设时间间隔,请求获取共享文件锁,该共享文件锁是主服务设备出现异常时释放的,在获取到共享文件锁后,作为主服务设备接收第一客户端发送的第一消息的订阅请求,基于订阅请求,在第一消息的预设有效时长内,从共享文件存储设备中获得第一消息,向第一客户端发送第一消息。通过本发明专利技术实施例提供的技术方案,在该MQTT集群中,一旦主服务设备出现异常,MQTT集群中的从服务设备将及时承担起主服务设备的角色,为第一客户端提供消息订阅服务,实现了对主服务设备和从服务设备的集群化管理,提高了MQTT系统的可用性。

Message subscription method, device, system, electronic equipment and storage medium

【技术实现步骤摘要】
消息订阅方法、装置、系统、电子设备及存储介质
本专利技术涉及物联网
,特别是涉及一种消息订阅方法、装置、系统、电子设备及存储介质。
技术介绍
消息队列遥测传输(MessageQueuingTelemetryTransport,MQTT)协议是一种基于发布/订阅(publish/subscribe)模式的通讯协议,广泛应用于物联网行业。目前,基于MQTT协议进行消息发布和消息订阅所对应的消息处理过程中,所采用的开源消息代理软件可以为mosquitto,RabbitMQ(RabbitMessageQueue),事件派发器(EventEmitter),ActiveMQ(ActiveMessageQueue)等,其中,mosquitto是一款实现了消息推送协议MQTTv3.1的开源消息代理软件,RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,ActiveMQ是Apache软件基金会研发的开放源代码消息中间件。如图1所示,图1为现有MQTT系统的一种结构示意图。该MQTT系统中包括消息发布客户端、服务设备和消息订阅客户端。其中,服务设备为安装有开源消息代理软件的电子设备。服务设备接收并存储消息发布客户端发布的待订阅消息。在接收到消息订阅客户端发送给的针对待订阅消息的订阅请求时,可以将待订阅消息发送给消息订阅客户端,完成消息处理过程。但是,在上述MQTT系统中,由于开源消息代理软件都是以单节点的形式为提供消息发布服务或消息订阅服务的,一旦开源消息代理软件出现异常时,消息发布以及消息订阅将无法正常进行,MQTT系统将无法正常运行,使得MQTT系统的可用性较差。
技术实现思路
本专利技术实施例的目的在于提供一种消息订阅方法、装置、系统、电子设备即存储介质,以提高MQTT系统的可用性。具体技术方案如下:本专利技术实施例提供了一种消息订阅方法,应用于MQTT集群中的第一从服务设备,所述MQTT集群包括主服务设备、至少一个从服务设备以及共享文件存储设备,所述方法包括:按照预设时间间隔,请求获取共享文件锁,所述共享文件锁是所述主服务设备出现异常时释放的;在获取到所述共享文件锁后,作为主服务设备接收第一客户端发送的第一消息的订阅请求;基于所述订阅请求,在所述第一消息的预设有效时长内,从所述共享文件存储设备中获得所述第一消息;向所述第一客户端发送所述第一消息。可选的,所述共享文件存储设备中存储的第一消息携带有所述第一消息的第一接收时间;所述基于所述订阅请求,在所述第一消息的预设有效时长内,从所述共享文件存储设备中获得所述第一消息的步骤,包括:基于所述订阅请求,从所述共享文件存储设备中获得当前时间与所述第一接收时间之间的时间差小于所述预设有效时长的第一消息。可选的,所述方法还包括:在所述当前时间与所述第一接收时间之间的时间差不小于所述预设有效时长时,丢弃所述共享文件存储设备中存储的第一消息。可选的,在获取到所述共享文件锁之后,所述方法还包括:作为主服务设备接收所述第二客户端发布的第二消息;根据所述第二消息的第二接收时间,将携带有所述第二接收时间的第二消息作为待订阅消息,存储到所述共享文件存储设备中。可选的,所述第一消息为所述主服务设备在接收到第二客户端发布的待订阅信息后,存储到所述共享文存储设备中的;或所述第一消息为所述第二消息。可选的,所述按照预设时间间隔,请求获取共享文件锁的步骤,包括:按照预设时间间隔,与所述MQTT集群中的其他从服务设备同时请求获取共享文件锁。可选的,所述共享文件存储设备为:运行存储区域网络(StorageAreaNetwork,SAN)或网络文件系统(NetworkFileSystem,NFS)的主服务设备和各个从服务设备中的存储空间构成的共享文件系统。本专利技术实施例还提供了一种消息订阅装置,应用于MQTT集群中的第一从服务设备,所述MQTT集群包括主服务设备、至少一个从服务设备以及共享文件存储设备,所述装置包括:第一获取模块,用于按照预设时间间隔,请求获取共享文件锁,所述共享文件锁是所述主服务设备出现异常时释放的;第一接收模块,用于在获取到所述共享文件锁后,作为主服务设备接收第一客户端发送的第一消息的订阅请求;第二获取模块,用于基于所述订阅请求,在所述第一消息的预设有效时长内,从所述共享文件存储设备中获得所述第一消息;发送模块,用于向所述第一客户端发送所述第一消息。可选的,所述共享文件存储设备中存储的第一消息携带有所述第一消息的第一接收时间;所述第二获取模块,具体用于基于所述订阅请求,在当前时间与所述第一接收时间之间的时间差小于所述预设有效时长时,从所述共享文件存储设备中获取所述第一消息。可选的,所述装置还包括:丢弃模块,用于在所述当前时间与所述第一接收时间之间的时间差不小于所述预设有效时长时,丢弃所述共享文件存储设备中存储的第一消息。可选的,所述装置还包括:第二接收模块,用于在获取到所述共享文件锁之后,作为主服务设备接收所述第二客户端发布的第二消息;存储模块,用于根据所述第二消息的第二接收时间,将携带有所述第二接收时间的第二消息作为待订阅消息,存储到所述共享文件存储设备中。可选的,所述第一消息为所述主服务设备在接收到第二客户端发布的待订阅信息后,存储到所述共享文存储设备中的;或所述第一消息为所述第二消息。可选的,所述第一获取模块,具体用于按照预设时间间隔,与所述MQTT集群中的其他从服务设备同时请求获取共享文件锁。可选的,所述共享文件存储设备为:运行SAN或NFS的主服务设备和各个从服务设备中的存储空间构成的共享文件系统。本专利技术实施例还提供了一种消息订阅系统,所述系统包括客户端和MQTT集群,所述MQTT集群包括客户端、主服务设备、至少一个从服务设备以及共享文件存储设备;所述客户端,用于发送订阅请求和接收消息;所述MQTT集群中第一从服务设备,用于按照预设时间间隔,请求获取共享文件锁,所述共享文件锁是所述主服务设备出现异常时释放的;在获取到所述共享文件锁后,作为主服务设备接收客户端发送的第一消息的订阅请求;基于所述订阅请求,在所述第一消息的预设有效时长内,从所述共享文件存储设备中获得所述第一消息;向所述客户端发送所述第一消息。本专利技术实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的消息订阅方法步骤。本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的消息订阅方法步骤。本专利技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时本文档来自技高网
...

【技术保护点】
1.一种消息订阅方法,其特征在于,应用于消息队列遥测传输MQTT集群中的第一从服务设备,所述MQTT集群包括主服务设备、至少一个从服务设备以及共享文件存储设备,所述方法包括:/n按照预设时间间隔,请求获取共享文件锁,所述共享文件锁是所述主服务设备出现异常时释放的;/n在获取到所述共享文件锁后,作为主服务设备接收第一客户端发送的第一消息的订阅请求;/n基于所述订阅请求,在所述第一消息的预设有效时长内,从所述共享文件存储设备中获得所述第一消息;/n向所述第一客户端发送所述第一消息。/n

【技术特征摘要】
1.一种消息订阅方法,其特征在于,应用于消息队列遥测传输MQTT集群中的第一从服务设备,所述MQTT集群包括主服务设备、至少一个从服务设备以及共享文件存储设备,所述方法包括:
按照预设时间间隔,请求获取共享文件锁,所述共享文件锁是所述主服务设备出现异常时释放的;
在获取到所述共享文件锁后,作为主服务设备接收第一客户端发送的第一消息的订阅请求;
基于所述订阅请求,在所述第一消息的预设有效时长内,从所述共享文件存储设备中获得所述第一消息;
向所述第一客户端发送所述第一消息。


2.根据权利要求1所述的方法,其特征在于,所述共享文件存储设备中存储的第一消息携带有所述第一消息的第一接收时间;
所述基于所述订阅请求,在所述第一消息的预设有效时长内,从所述共享文件存储设备中获得所述第一消息的步骤,包括:
基于所述订阅请求,从所述共享文件存储设备中获得当前时间与所述第一接收时间之间的时间差小于所述预设有效时长的第一消息。


3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述当前时间与所述第一接收时间之间的时间差不小于所述预设有效时长时,丢弃所述共享文件存储设备中存储的第一消息。


4.根据权利要求1所述的方法,其特征在于,在获取到所述共享文件锁之后,所述方法还包括:
作为主服务设备接收所述第二客户端发布的第二消息;
根据所述第二消息的第二接收时间,将携带有所述第二接收时间的第二消息作为待订阅消息,存储到所述共享文件存储设备中。


5.根据权利要求4所述的方法,其特征在于,所述第一消息为所述主服务设备在接收到第二客户端发布的待订阅信息后,存储到所述共享文存储设备中的;或
所述第一消息为所述第二消息。


6.根据权利要求1所述的方法,其特征在于,所述按照预设时间间隔,请求获取共享文件锁的步骤,包括:
按照预设时间间隔,与所述MQTT集群中的其他从服务设备同时请求获取共享文件锁。

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

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

1