一种基于MQTT协议的通信系统及通信方法与流程

文档序号:35628768发布日期:2023-10-06 02:10阅读:24来源:国知局
一种基于MQTT协议的通信系统及通信方法与流程

本发明涉及互联网平台技术开发和应用领域,尤其是一种基于mqtt5.0协议的互联网微服务通信系统及通信方法。


背景技术:

1、当前的互联网saas(数据即服务)产品,基本都是集群化部署,开发多采用微服务架构,而微服务架构就需要各个应用模块之间能够以一定的方式实施通信,而通信模型作为整个集群式微服务架构的重要一部分,是各个开发服务商迫切需要解决的难题。

2、http这种后端无状态连接请求的通信模型,对于后端服务的业务系统很容易做到弹性扩展,但是这种点对点的通信模型只能满足主动发起请求的情况,也就是只能是前端显示(客户端)主动向后端服务(服务端)发送请求,而后端服务(服务端)无法主动向前端显示(客户端)发送消息,因此无法实现发布订阅模型及功能以及点对多点的通信。

3、mqtt(消息队列遥测传输)是一个基于客户端-服务器的消息发布/订阅传输协议。mqtt协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(m2m)通信和物联网(iot)。mqtt虽然解决了基于客户端-服务器的消息发布/订阅传输的问题,但是还是无法同时完成点对点,点对多点通信的问题。


技术实现思路

1、为解决以上现有技术存在的技术缺点,本发明提供了一种基于mqtt5.0协议的通信系统和基于mqtt5.0协议的微服务通信方法。

2、一方面,本发明提供了一种基于mqtt5.0协议的通信系统,包括mqtt-broker集群以及分别连接所述mqtt-broker集群的应用模块集群,mqtt-broker集群包括多个mqtt-broker模块;所述应用模块集群包括但不限于:第一应用模块、第二应用模块,所述第一应用模块和所述第二应用模块通过任一所述的mqtt-broker模块进行通信;所述第一应用模块包括但不限于:第一实例、第二实例,所述第二应用模块包括但不限于:第三实例、第四实例。

3、上述第一应用模块的第一实例通过所述mqtt-broker模块发布请求,通过所述mqtt-broker模块订阅消息的所述第二应用模块接收所述请求并随机指定所述第三实例和所述第四实例任一处理所述请求。

4、上述应用模块集群具有一个或多个分组,所述第一应用模块和所述第二应用模块在同一分组中。

5、上述第一应用模块和所述第二应用模块来回通信的消息主题包括但不限于:分组标识、消息类型。

6、上述第一应用模块、所述第二应用模块、所述第一实例、所述第二实例、所述第三实例、所述第四实例分别具有各自标识,所述标识通过读取消息头识别并生成所述消息主题的一部分,所述消息头为json格式。

7、第二方面,本发明还提供了一种基于mqtt5.0协议的微服务通信方法,包括:配置mqtt-broker集群以及分别连接所述mqtt-broker集群的应用模块集群; 为所述应用模块配置消息主题;配置消息头格式;所述应用模块集群包括第一应用模块和第二应用模块,所述第一应用模块和所述第二应用模块通过任一所述的mqtt-broker模块进行通信;所述第一应用模块包括但不限于:第一实例、第二实例,所述第二应用模块包括但不限于:第三实例、第四实例。

8、上述为所述应用模块配置消息主题包括:配置所述第一应用模块向所述mqtt-broker模块发布请求时的消息主题为第一主题;配置所述第二应用模块从所述mqtt-broker模块接收订阅消息的消息主题为第二主题;配置所述第二应用模块向所述mqtt-broker模块发布返回包的消息主题为第三主题;配置所述第一应用模块从所述mqtt-broker模块接收订阅的返回包的消息主题为第四主题;为所述消息主题配置分组标识以及消息类型。

9、当上述消息为发布状态时,无论是消息发布方还是消息接收方,配置其消息主题的内容及其权限为一致。

10、配置上述第二主题还包括第一应用模块标识和/或第二应用模块标识;配置上述第四主题还包括实例标识及其所属的应用模块标识。

11、配置消息头格式为json格式;所述第一应用模块标识、所述第二应用模块标识、所述实例标识通过读取所述消息头识别并生成所述消息主题的一部分。

12、本发明通过配置有多个实例的应用模块集群分别与所述mqtt模块通信, 不仅实现了基于客户端-服务器的消息发布/订阅传输功能,而且消息接收端的应用模块因为具有多个实例因此具有了支持负载均衡的功能,而且在接收消息时可以随机指定任一实例接收并处理所述请求消息。通过对通信过程各消息主题的针对性配置,不仅可以实现点对点的通信,还实现了点对多点的通信。

13、因此本发明提供的通信系统同时实现了以下3种通信模型的优势:(1)发布订阅模型。也就是点对多通信模型,即支持消息发布者在某个主题上发布消息,以及消息接收者在某个主题上订阅消息,消息接收者的数量不受限制,可以有多个消息接收者来订阅相同的主题。(2)请求/响应模型。也就是点对点通信模型,并且有消息回复,是两个端点之间进行可靠性通信的基础。(3)子弹射击模型,是一种特殊的请求/响应模型,指的是消息发射出去不在关注对端是否处理或者什么时候处理完毕。至于是否要保证对端必须受到,则由mqtt协议的qos(服务质量)所决定。

14、同时本发明通过给消息配置分组标识,解决了多个产品,同一个组下的应用模块能够通过权限配置互通,而不同组之间的数据是隔离的问题,

15、本发明提供的通信模型及通信方法,实现了后端服务(服务端)主动向前端显示(客户端)发送消息,进而实现了发布订阅功能以及点对多点的通信。本发明不仅仅适用于互联网saas集群化部署的多个微服务之间的通信,更能应用于物联网设备之间的通信。一端可以是服务端,另一端可以是设备端,对于设备端的客户端标识可以认为为设备标识或设备序列号,从而完成物联网通信模型。



技术特征:

1.一种基于mqtt协议的通信系统,其特征在于,包括mqtt-broker集群以及分别连接所述mqtt-broker集群的应用模块集群,mqtt-broker集群包括多个mqtt-broker模块;

2.根据权利要求1所述的通信系统,其特征在于,所述第一应用模块的第一实例通过所述mqtt-broker模块发布请求,通过所述mqtt-broker模块订阅消息的所述第二应用模块接收所述请求并随机指定所述第三实例和所述第四实例任一处理所述请求。

3.根据权利要求1所述的通信系统,其特征在于,所述应用模块集群具有一个或多个分组,所述第一应用模块和所述第二应用模块在同一分组中。

4.根据权利要求1-3任一所述的通信系统,其特征在于,所述第一应用模块和所述第二应用模块来回通信的消息主题包括但不限于:分组标识、消息类型。

5.根据权利要求4所述的通信系统,其特征在于,所述第一应用模块、所述第二应用模块、所述第一实例、所述第二实例、所述第三实例、所述第四实例分别具有各自标识,所述标识通过读取消息头识别并生成所述消息主题的一部分,所述消息头为json格式。

6.一种基于mqtt协议的微服务通信方法,其特征在于,所述方法包括:

7.根据权利要求6所述的通信方法,其特征在于,所述为所述应用模块配置消息主题包括:

8.根据权利要求7所述的通信方法,其特征在于,当所述消息为发布状态时,无论是消息发布方还是消息接收方,配置其消息主题的内容及其权限为一致。

9.根据权利要求7所述的通信方法,其特征在于,配置所述第二主题还包括第一应用模块标识和/或第二应用模块标识;

10.根据权利要求9所述的通信方法,其特征在于,配置消息头格式为json格式;所述第一应用模块标识、所述第二应用模块标识、所述实例标识通过读取所述消息头识别并生成所述消息主题的一部分。


技术总结
本发明提供了一种基于MQTT协议的通信系统及通信方法,所述通信系统包括MQTT‑Broker集群以及分别连接所述MQTT‑Broker集群的应用模块集群,MQTT‑Broker集群包括多个MQTT‑Broker模块;所述应用模块集群包括但不限于:第一应用模块、第二应用模块,所述第一应用模块和所述第二应用模块通过任一所述的MQTT‑Broker模块进行通信;所述第一应用模块包括但不限于:第一实例、第二实例,所述第二应用模块包括但不限于:第三实例、第四实例。

技术研发人员:李鹏,张敏
受保护的技术使用者:西安即刻易用网络科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1