一种基于路由模式、MQTT协议的IOT集群通讯方法技术

技术编号:26346703 阅读:28 留言:0更新日期:2020-11-13 21:25
本发明专利技术公开了一种基于路由模式、MQTT协议的IOT集群通讯方法,应用于服务端,包括:服务端向设备端发送消息;当设备端不在线时,服务端将消息发送给第二IOT,第二IOT将消息持久化保存在本地;第二IOT接收到设备端上线的消息后,第二IOT将消息路由至第一IOT中,第一IOT将消息持久化保存在本地;第一IOT将消息通过MQTT Publish进行发送;设备端接收到消息。

【技术实现步骤摘要】
一种基于路由模式、MQTT协议的IOT集群通讯方法
本专利技术涉及物联网通讯领域,尤其涉及一种基于路由模式、MQTT协议的IOT集群通讯方法。
技术介绍
目前属于移动物联网的时代,海量物联网设备接入IOT来实现通信,IOT服务端大多采用MQTT协议来实现。由于海量设备的接入,MQTTBroker的集群化是必不可少的。MQTTBroker集群的难点在于MQTT协议支持持久化session机制,然而设备的连接是无状态的,因此就涉及到了离线消息的存储和分发以及集群内部如何通信的问题。目前市场上的MQTTBroker集群解决方案大都基于广播模式,即当某个服务收到了一条消息,立刻把消息在集群内广播出去,各个服务查找本地在线的订阅者,若存在则将消息发送出去。这种方式简单粗暴的解决了上面提到的几个问题,实现较为简单,但是会造成一条消息在整个集群内部都流转一遍导致网络开销过大的问题。另外,MQTT共享订阅是一种高级的负载均衡模式,订阅同一个主题的客户端可以轮流收到Broker推送的消息。避免Broker消息量过大、客户端产生消息堆积的问题。然而本文档来自技高网...

【技术保护点】
1.一种基于路由模式、MQTT协议的IOT集群通讯方法,应用于服务端,其特征是,所述方法包括:/n服务端向设备端发送消息;/n当设备端不在线时,服务端将所述消息发送给第二IOT,所述第二IOT将所述消息持久化保存在本地;/n所述第二IOT接收到设备端上线的消息后,所述第二IOT将所述消息路由至第一IOT中,所述第一IOT将所述消息持久化保存在本地;/n所述第一IOT将所述消息通过MQTT Publish进行发送;/n所述设备端接收到所述消息。/n

【技术特征摘要】
1.一种基于路由模式、MQTT协议的IOT集群通讯方法,应用于服务端,其特征是,所述方法包括:
服务端向设备端发送消息;
当设备端不在线时,服务端将所述消息发送给第二IOT,所述第二IOT将所述消息持久化保存在本地;
所述第二IOT接收到设备端上线的消息后,所述第二IOT将所述消息路由至第一IOT中,所述第一IOT将所述消息持久化保存在本地;
所述第一IOT将所述消息通过MQTTPublish进行发送;
所述设备端接收到所述消息。


2.根据权利要求1所述的一种基于路由模式、MQTT协议的IOT集群通讯方法,其特征是,所述设备端基于MQTT协议与所述第一IOT建立长连接,包括:
所述设备端经过nginx由nginx最小连接算法与所述第一IOT连接,所述第一IOT将所述设备端的设备信息、所述第一IOT的IP信息存储于redis中,并基于netty内部协议将所述设备端上线的消息转发至各个IOT服务上。


3.根据权利要求1所述的一种基于路由模式、MQTT协议的IOT集群通讯方法,其特征是,所述方法还包括:
所述第一IOT将所述消息通过MQTTPublish进行发送之前,所述第一IOT注册重试任务;
所述设备端收到所述第一IOT发送的消息后,所述设备端返回消息ACK至所述第一IOT;
所述第一IOT清除重试任务并删除持久化保存在本地的消息。


4.根据权利要求3所述的一种基于路由模式、MQTT协议的IOT集群通讯方法,其特征是,所述第一IOT基于MQTT的头部MessageID和设备端的设备信息寻找对应的重试任务。


5.一种基于路由模式、MQTT协议的IOT集群通讯方法,应用于设备端,其...

【专利技术属性】
技术研发人员:钱佳俊王磊
申请(专利权)人:浙江百应科技有限公司
类型:发明
国别省市:浙江;33

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

1