CN112104720B - 适用于边缘物联终端的MQTT双Broker数据交互方法及系统 - Google Patents
适用于边缘物联终端的MQTT双Broker数据交互方法及系统 Download PDFInfo
- Publication number
- CN112104720B CN112104720B CN202010918092.7A CN202010918092A CN112104720B CN 112104720 B CN112104720 B CN 112104720B CN 202010918092 A CN202010918092 A CN 202010918092A CN 112104720 B CN112104720 B CN 112104720B
- Authority
- CN
- China
- Prior art keywords
- access module
- message
- mqtt
- client
- broker1
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000004891 communication Methods 0.000 abstract description 11
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 206010033799 Paralysis Diseases 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 230000007488 abnormal function Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开适用于边缘物联终端的MQTT双Broker数据交互方法及系统,该方法由客户端执行,包括:向接入模块发送MQTT连接消息,接收接入模块反馈的连接回复报文,完成连接;向接入模块发送MQTT主题订阅消息,接收接入模块反馈的订阅回复报文,完成主题订阅;向接入模块发送MQTT主题取消订阅消息,接收接入模块反馈的取消订阅回复报文,完成主题订阅取消;向接入模块发送MQTT心跳消息,接收接入模块反馈的心跳回复报文,保证客户端对Broker1和Broker2在线;向接入模块发送MQTT发布类型消息,接收接入模块反馈的发布回复报文;根据报文分类确认QoS设置,再次发送发布dup报文给接入模块,接收接入模块反馈的发布dup回复报文。本发明提升整体通讯环境的负载能力。
Description
技术领域
本发明涉及一种适用于边缘物联终端的MQTT双Broker数据交互方法及系统,属于边缘物联终端通信技术领域。
背景技术
随着物联网发展不断加大加快,越来越多的嵌入式设备接入物联网,加入万物共联。MQTT作为一种轻量型应用层通信协议,具备一对多的传输机制,客户端之间相互解耦和极短的固定头开销,越来越受硬件能力和网络资源受限制的嵌入式终端设备的欢迎。
当下,越来越多的边缘物联终端设备内部,设备之间,或者终端与边设备之间通过MQTT协议进行信息交互。比如配电物联网中,物联管理云平台与边缘设备间通过MQTT协议进行业务数据的收集以及管理控制命令的下发,而边设备依然通过MQTT协议与子设备和应用进行数据交互转发。虽然轻量化设计赋予了MQTT Broker与客户端之间相对稳定强健的通信质量,但随着接入程序和设备数量的不断增加,与传统点对点传输协议相比,MQTTBroker的稳定运行对整体通信质量有着更严重的影响。作为通信网络数据转发中心,一旦Broker程序发生阻塞或故障掉线,即使设备硬件和网络环境依然正常,整体通信网络都将瘫痪失联,子设备数据得不到正常上传,物管平台控制命令无法下发,应用之间的数据交互全部断连。
目前对于云端数据中心,可以采用多MQTT Broker集群来缓解数据压力以及故障应急,保障通信网络长期稳定运行。但是在边端和终端的嵌入式系统内,布置MQTT Broker集群和相关服务组件的代价过高,占用资源过大,并不合适。因此,可通过增加一个MQTTBroker作为备用信息通道;以及通过程序和装置外置接入模块,自动选择主备信息通道,一方面极大提升主MQTT Broker阻塞或故障时的应急处理能力,另一方面在客户端隐藏双通道概念,简化客户端程序开发,满足独立程序开发与网络系统兼容要求。
发明内容
本发明提出一种基于外部接入模块的MQTT双Broker主备故障配合和被动负载平衡方法,解决物联网边缘设备因MQTT Broker程序故障而引起的网络瘫痪,并一定程度上缓解Broker负载压力,被动负载平衡。
本发明具体采用如下技术方案:适用于边缘物联终端的MQTT双Broker数据交互方法,由客户端执行,所述方法包括:
向接入模块发送MQTT连接消息,接收接入模块反馈的连接回复报文,完成连接;
向接入模块发送MQTT主题订阅消息,接收接入模块反馈的订阅回复报文,完成主题订阅;
向接入模块发送MQTT主题取消订阅消息,接收接入模块反馈的取消订阅回复报文,完成主题订阅取消;
向接入模块发送MQTT心跳消息,接收接入模块反馈的心跳回复报文,保证客户端对Broker1和Broker2在线;
向接入模块发送MQTT发布类型消息,接收接入模块反馈的发布回复报文;当没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文给接入模块,接收接入模块反馈的发布dup回复报文。
作为一种较佳的实施例,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker1,相互之间独立选择,达成被动负载平衡。
本发明还提出适用于边缘物联终端的MQTT双Broker数据交互方法,由接入模块执行,所述方法包括:
接收客户端发送的MQTT连接消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的连接回复报文并反馈给客户端,完成连接;
接收客户端发送的MQTT主题订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的的订阅回复报文并反馈给客户端,完成主题订阅;
接收客户端发送的MQTT主题取消订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的取消订阅回复报文并反馈给客户端,完成主题订阅取消;
接收客户端发送的MQTT心跳消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的心跳回复报文并反馈给客户端,保证客户端对Broker1和Broker2在线;
接收客户端发送的MQTT发布类型消息并转发给Broker1,接收Broker1发送的发布回复报文并反馈给客户端;当Broker1断开连接时,检测Broker1的断连状态并将消息通道调整为Broker2;当客户端没有收到发布回复报文时,接收客户端发送的发布dup报文给Broker2,接收Broker2发送的发布dup回复报文并反馈给客户端。
作为一种较佳的实施例,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker1,相互之间独立选择,达成被动负载平衡。
本发明还提出适用于边缘物联终端的MQTT双Broker数据交互方法,由Broker1和Broker2执行,包括:
接收接入模块发送的MQTT连接消息,发送连接回复报文反馈给接入模块;
接收接入模块发送的MQTT主题订阅消息,发送订阅回复报文反馈给接入模块;
接收接入模块发送的MQTT主题取消订阅消息,发送取消订阅回复报文反馈给接入模块;
接收接入模块发送的MQTT心跳消息,发送心跳回复报文反馈给接入模块;
正常情况下,Broker1接收接入模块发送的MQTT发布类型消息,发送发布回复报文反馈给接入模块;当Broker1断开连接时,Broker1发送Broker1的断连状态给接入模块;当客户端没有收到发布回复报文时,Broker2接收接入模块发送的发布dup报文,Broker2发送发布dup回复报文反馈给接入模块。
作为一种较佳的实施例,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker1,相互之间独立选择,达成被动负载平衡。
本发明还提出适用于边缘物联终端的MQTT双Broker数据交互系统,包括:
客户端,用于执行:向接入模块发送MQTT连接消息,接收接入模块反馈的连接回复报文,完成连接;向接入模块发送MQTT主题订阅消息,接收接入模块反馈的订阅回复报文,完成主题订阅;向接入模块发送MQTT主题取消订阅消息,接收接入模块反馈的取消订阅回复报文,完成主题订阅取消;向接入模块发送MQTT心跳消息,接收接入模块反馈的心跳回复报文,保证客户端对Broker1和Broker2在线;向接入模块发送MQTT发布类型消息,接收接入模块反馈的发布回复报文;当没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文给接入模块,接收接入模块反馈的发布dup回复报文;
接入模块,用于执行:接收客户端发送的MQTT连接消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的连接回复报文并反馈给客户端,完成连接;接收客户端发送的MQTT主题订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的的订阅回复报文并反馈给客户端,完成主题订阅;接收客户端发送的MQTT主题取消订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的取消订阅回复报文并反馈给客户端,完成主题订阅取消;接收客户端发送的MQTT心跳消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的心跳回复报文并反馈给客户端,保证客户端对Broker1和Broker2在线;接收客户端发送的MQTT发布类型消息并分别转发给Broker1,接收Broker1发送的发布回复报文并反馈给客户端;当Broker1断开连接时,检测Broker1的断连状态并将消息通道调整为Broker2;当客户端没有收到发布回复报文时,接收客户端发送的发布dup报文给Broker2,接收Broker2发送的发布dup回复报文并反馈给客户端;
Broker1、Broker2,用于执行:接收接入模块发送的MQTT连接消息,发送连接回复报文反馈给接入模块;接收接入模块发送的MQTT主题订阅消息,发送订阅回复报文反馈给接入模块;接收接入模块发送的MQTT主题取消订阅消息,发送取消订阅回复报文反馈给接入模块;接收接入模块发送的MQTT心跳消息,发送心跳回复报文反馈给接入模块;正常情况下,Broker1接收接入模块发送的MQTT发布类型消息,发送发布回复报文反馈给接入模块;当Broker1断开连接时,Broker1发送Broker1的断连状态给接入模块;当客户端没有收到发布回复报文时,Broker2接收接入模块发送的发布dup报文,Broker2发送发布dup回复报文反馈给接入模块。
作为一种较佳的实施例,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker1,相互之间独立选择,达成被动负载平衡。
本发明还提出适用于边缘物联终端的MQTT双Broker数据交互方法,包括如下步骤:
步骤SS1:客户端向接入模块发送MQTT连接消息,由接入模块分别向Broker1和Broker2转发连接消息,并将连接回复报文转发给客户端,完成连接;
步骤SS2:客户端向接入模块发送MQTT主题订阅消息,由接入模块分别向Broker1和Broker2转发连接消息,并将订阅回复报文转发给客户端,完成主题订阅;
步骤SS3:客户端向接入模块发送MQTT主题取消订阅消息,由接入模块分别向Broker1和Broker2转发连接消息,并将取消订阅回复报文转发给客户端,完成主题订阅取消;
步骤SS4:客户端向接入模块发送MQTT心跳消息,由接入模块分别向Broker1和Broker2转发连接消息,并将心跳回复报文转发给客户端,保证客户端对Broker1和Broker2在线;
步骤SS5:正常情况下,客户端向接入模块发送MQTT发布类型消息,接入模块将消息转发给Broker 1,并将发布回复报文转发给客户端;
步骤SS6:当Broker 1断开连接时,接入模块检测到Broker 1断连状态,并将消息通道调整为Broker 2;
步骤SS7:当客户端没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文,接入模块将消息转发给Broker2,并将发布dup回复报文转发给客户端。
作为一种较佳的实施例,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker1,相互之间独立选择,达成被动负载平衡。
本发明所达到的有益效果:第一,本发明提出适用于边缘物联终端的MQTT双Broker数据交互方法及系统,解决了物联网边缘设备因MQTT Broker程序故障而引起的边缘物联终端网络瘫痪阻塞,造成的配电物联终端数据不刷新,控制不响应等功能异常问题,能在一定程度上缓解Broker负载压力,被动负载平衡。第二,本发明基于外部接入模块对客户端发起连接订阅和消息推送的管理,以及Broker回复的感知处理,对双Broker的调用,解决了单一Broker下因Broker故障而引起的整个系统通讯断连,同时提升了整体通讯环境的负载能力,实现了客户端透明模式下的双通道MQTT消息网络。
附图说明
图1是本发明的适用于边缘物联终端的MQTT双Broker数据交互方法的流程图;
图2是本发明创建连接初始化示意图;
图3是本发明正常运行状况下流程图;
图4是本发明故障状况下运行流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例1:如图1所示,本发明提出适用于边缘物联终端的MQTT双Broker数据交互方法,由客户端执行,所述方法包括:
向接入模块发送MQTT连接消息,接收接入模块反馈的连接回复报文,完成连接;
向接入模块发送MQTT主题订阅消息,接收接入模块反馈的订阅回复报文,完成主题订阅;
向接入模块发送MQTT主题取消订阅消息,接收接入模块反馈的取消订阅回复报文,完成主题订阅取消;
向接入模块发送MQTT心跳消息,接收接入模块反馈的心跳回复报文,保证客户端对Broker1和Broker2在线;
向接入模块发送MQTT发布类型消息,接收接入模块反馈的发布回复报文;当没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文给接入模块,接收接入模块反馈的发布dup回复报文。
可选的,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
实施例2:本发明还提出适用于边缘物联终端的MQTT双Broker数据交互方法,由接入模块执行,所述方法包括:
接收客户端发送的MQTT连接消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的连接回复报文并反馈给客户端,完成连接;
接收客户端发送的MQTT主题订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的的订阅回复报文并反馈给客户端,完成主题订阅;
接收客户端发送的MQTT主题取消订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的取消订阅回复报文并反馈给客户端,完成主题订阅取消;
接收客户端发送的MQTT心跳消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的心跳回复报文并反馈给客户端,保证客户端对Broker1和Broker2在线;
接收客户端发送的MQTT发布类型消息并转发给Broker1,接收Broker1发送的发布回复报文并反馈给客户端;当Broker1断开连接时,检测Broker1的断连状态并将消息通道调整为Broker2;当客户端没有收到发布回复报文时,接收客户端发送的发布dup报文给Broker2,接收Broker2发送的发布dup回复报文并反馈给客户端。
可选的,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
实施例3:本发明还提出适用于边缘物联终端的MQTT双Broker数据交互方法,由Broker1和Broker2执行,包括:
接收接入模块发送的MQTT连接消息,发送连接回复报文反馈给接入模块;
接收接入模块发送的MQTT主题订阅消息,发送订阅回复报文反馈给接入模块;
接收接入模块发送的MQTT主题取消订阅消息,发送取消订阅回复报文反馈给接入模块;
接收接入模块发送的MQTT心跳消息,发送心跳回复报文反馈给接入模块;
正常情况下,Broker1接收接入模块发送的MQTT发布类型消息,发送发布回复报文反馈给接入模块;当Broker1断开连接时,Broker1发送Broker1的断连状态给接入模块;当客户端没有收到发布回复报文时,Broker2接收接入模块发送的发布dup报文,Broker2发送发布dup回复报文反馈给接入模块。
可选的,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
实施例4:本发明还提出适用于边缘物联终端的MQTT双Broker数据交互系统,包括:
客户端,用于执行:向接入模块发送MQTT连接消息,接收接入模块反馈的连接回复报文,完成连接;向接入模块发送MQTT主题订阅消息,接收接入模块反馈的订阅回复报文,完成主题订阅;向接入模块发送MQTT主题取消订阅消息,接收接入模块反馈的取消订阅回复报文,完成主题订阅取消;向接入模块发送MQTT心跳消息,接收接入模块反馈的心跳回复报文,保证客户端对Broker1和Broker2在线;向接入模块发送MQTT发布类型消息,接收接入模块反馈的发布回复报文;当没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文给接入模块,接收接入模块反馈的发布dup回复报文;
接入模块,用于执行:接收客户端发送的MQTT连接消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的连接回复报文并反馈给客户端,完成连接;接收客户端发送的MQTT主题订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的的订阅回复报文并反馈给客户端,完成主题订阅;接收客户端发送的MQTT主题取消订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的取消订阅回复报文并反馈给客户端,完成主题订阅取消;接收客户端发送的MQTT心跳消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的心跳回复报文并反馈给客户端,保证客户端对Broker1和Broker2在线;接收客户端发送的MQTT发布类型消息并分别转发给Broker1,接收Broker1发送的发布回复报文并反馈给客户端;当Broker1断开连接时,检测Broker1的断连状态并将消息通道调整为Broker2;当客户端没有收到发布回复报文时,接收客户端发送的发布dup报文给Broker2,接收Broker2发送的发布dup回复报文并反馈给客户端;
Broker1、Broker2,用于执行:接收接入模块发送的MQTT连接消息,发送连接回复报文反馈给接入模块;接收接入模块发送的MQTT主题订阅消息,发送订阅回复报文反馈给接入模块;接收接入模块发送的MQTT主题取消订阅消息,发送取消订阅回复报文反馈给接入模块;接收接入模块发送的MQTT心跳消息,发送心跳回复报文反馈给接入模块;正常情况下,Broker1接收接入模块发送的MQTT发布类型消息,发送发布回复报文反馈给接入模块;当Broker1断开连接时,Broker1发送Broker1的断连状态给接入模块;当客户端没有收到发布回复报文时,Broker2接收接入模块发送的发布dup报文,Broker2发送发布dup回复报文反馈给接入模块。
可选的,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
实施例5:本发明还提出适用于边缘物联终端的MQTT双Broker数据交互方法,包括如下步骤:
步骤SS1:客户端向接入模块发送MQTT连接消息,由接入模块分别向Broker1和Broker2转发连接消息,并将连接回复报文转发给客户端,完成连接;
步骤SS2:客户端向接入模块发送MQTT主题订阅消息,由接入模块分别向Broker1和Broker2转发连接消息,并将订阅回复报文转发给客户端,完成主题订阅;
步骤SS3:客户端向接入模块发送MQTT主题取消订阅消息,由接入模块分别向Broker1和Broker2转发连接消息,并将取消订阅回复报文转发给客户端,完成主题订阅取消;
步骤SS4:客户端向接入模块发送MQTT心跳消息,由接入模块分别向Broker1和Broker2转发连接消息,并将心跳回复报文转发给客户端,保证客户端对Broker1和Broker2在线;
步骤SS5:正常情况下,客户端向接入模块发送MQTT发布类型消息,接入模块将消息转发给Broker 1,并将发布回复报文转发给客户端;
步骤SS6:当Broker 1断开连接时,接入模块检测到Broker 1断连状态,并将消息通道调整为Broker 2;
步骤SS7:当客户端没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文,接入模块将消息转发给Broker2,并将发布dup回复报文转发给客户端。
当客户端没有收到发布回复报文时,根据消息类别对消息进行QoS分类,如:
1)QoS 0:周期上送采集数据,重要度低,可容忍发送失败;
2)QoS 1:紧急事件类,重要度高,不可容忍发送失败,可容忍重复发送;
3)QoS 2:控制类命令,重要度高,不可容忍发送失败,不可容忍重复发送。
QoS 0的消息不需要多做处理,接入模块直接转发下一条消息。当消息设置QoS为1或2时,客户端会重新发送dup消息,接入模块转发消息,并完成不同QoS下要求的相关操作,如表1提供的具体消息分类案例。
表1
可选的,所述客户端与所述接入模块之间没有关联逻辑,Broker1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
图1是本发明的总体流程图,图2,图3和图4则是不同阶段下运行流程,结合起来叙述在正常状态下和故障状态下本发明的具体实施方案:
正常模式:
客户端初始化连接订阅,接入模块同时向两个Broker转发消息完成初始化如图2所示;
客户端正常发布消息,接入模块向Broker 1转发消息,并返回消息发布回复;并同时保证客户端在两个Broker的活跃度如图3所示;
当Broker 1发生故障时,接入模块可由两个方式得知:方式1:Broker 1没有回复心跳报文;方式2:转发的发布消息没有收到回复。
方式1下,客户端对Broker 1故障不会有任何感知,也不需要做多余操作。方式2下,客户端会根据消息的QoS设置来发送dup报文(表1提供具体消息分类案例),接入模块在感知Broker 1故障断连时自动将消息通道切换成Broker 2,并转发客户端的dup报文以及Broker 2的回复报文。再根据QoS等级为1或2,继续发送PUBREL和PUBCOMP信号,确保主消息报文按照QoS要求为可多次送达或仅一次送达如图3。
每个程序相关的接入模块相互间独立运行,如App 1接入模块感知到Broker 1故障,切换至Broker 2;而App 2接入模块未感知到Broker 1故障,与Broker 1之间依然可以保持正常通信,则继续沿用Broker 1,达成被动的负载平衡如图4所示。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
Claims (9)
1.适用于边缘物联终端的MQTT双Broker数据交互方法,由客户端执行,其特征在于,所述方法包括:
向接入模块发送MQTT连接消息,接收接入模块反馈的连接回复报文,完成连接;
向接入模块发送MQTT主题订阅消息,接收接入模块反馈的订阅回复报文,完成主题订阅;
向接入模块发送MQTT主题取消订阅消息,接收接入模块反馈的取消订阅回复报文,完成主题订阅取消;
向接入模块发送MQTT心跳消息,接收接入模块反馈的心跳回复报文,保证客户端对Broker1和Broker2在线;
向接入模块发送MQTT发布类型消息,接收接入模块反馈的发布回复报文;当没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文给接入模块,接收接入模块反馈的发布dup回复报文;
所述客户端与所述接入模块之间没有关联逻辑,Broker 1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
2.适用于边缘物联终端的MQTT双Broker数据交互方法,由接入模块执行,其特征在于,所述方法包括:
接收客户端发送的MQTT连接消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的连接回复报文并反馈给客户端,完成连接;
接收客户端发送的MQTT主题订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的的订阅回复报文并反馈给客户端,完成主题订阅;
接收客户端发送的MQTT主题取消订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的取消订阅回复报文并反馈给客户端,完成主题订阅取消;
接收客户端发送的MQTT心跳消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的心跳回复报文并反馈给客户端,保证客户端对Broker1和Broker2在线;
接收客户端发送的MQTT发布类型消息并转发给Broker1,接收Broker1发送的发布回复报文并反馈给客户端;当Broker1断开连接时,检测Broker1的断连状态并将消息通道调整为Broker2;当客户端没有收到发布回复报文时,接收客户端发送的发布dup报文给Broker2,接收Broker2发送的发布dup回复报文并反馈给客户端。
3.根据权利要求2所述的适用于边缘物联终端的MQTT双Broker数据交互方法,其特征在于,所述客户端与所述接入模块之间没有关联逻辑,Broker 1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
4.适用于边缘物联终端的MQTT双Broker数据交互方法,由Broker1和Broker2执行,其特征在于,包括:
接收接入模块发送的MQTT连接消息,发送连接回复报文反馈给接入模块;
接收接入模块发送的MQTT主题订阅消息,发送订阅回复报文反馈给接入模块;
接收接入模块发送的MQTT主题取消订阅消息,发送取消订阅回复报文反馈给接入模块;
接收接入模块发送的MQTT心跳消息,发送心跳回复报文反馈给接入模块;
正常情况下,Broker1接收接入模块发送的MQTT发布类型消息,发送发布回复报文反馈给接入模块;当Broker1断开连接时,Broker1发送Broker1的断连状态给接入模块;当客户端没有收到发布回复报文时,Broker2接收接入模块发送的发布dup报文,Broker2发送发布dup回复报文反馈给接入模块。
5.根据权利要求4所述的适用于边缘物联终端的MQTT双Broker数据交互方法,其特征在于,所述客户端与所述接入模块之间没有关联逻辑,Broker 1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
6.适用于边缘物联终端的MQTT双Broker数据交互系统,其特征在于,包括:
客户端,用于执行:向接入模块发送MQTT连接消息,接收接入模块反馈的连接回复报文,完成连接;向接入模块发送MQTT主题订阅消息,接收接入模块反馈的订阅回复报文,完成主题订阅;向接入模块发送MQTT主题取消订阅消息,接收接入模块反馈的取消订阅回复报文,完成主题订阅取消;向接入模块发送MQTT心跳消息,接收接入模块反馈的心跳回复报文,保证客户端对Broker1和Broker2在线;向接入模块发送MQTT发布类型消息,接收接入模块反馈的发布回复报文;当没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文给接入模块,接收接入模块反馈的发布dup回复报文;
接入模块,用于执行:接收客户端发送的MQTT连接消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的连接回复报文并反馈给客户端,完成连接;接收客户端发送的MQTT主题订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的的订阅回复报文并反馈给客户端,完成主题订阅;接收客户端发送的MQTT主题取消订阅消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的取消订阅回复报文并反馈给客户端,完成主题订阅取消;接收客户端发送的MQTT心跳消息并分别转发给Broker1和Broker2,接收Broker1和Broker2发送的心跳回复报文并反馈给客户端,保证客户端对Broker1和Broker2在线;接收客户端发送的MQTT发布类型消息并分别转发给Broker1,接收Broker1发送的发布回复报文并反馈给客户端;当Broker1断开连接时,检测Broker1的断连状态并将消息通道调整为Broker2;当客户端没有收到发布回复报文时,接收客户端发送的发布dup报文给Broker2,接收Broker2发送的发布dup回复报文并反馈给客户端;
Broker1、Broker2,用于执行:接收接入模块发送的MQTT连接消息,发送连接回复报文反馈给接入模块;接收接入模块发送的MQTT主题订阅消息,发送订阅回复报文反馈给接入模块;接收接入模块发送的MQTT主题取消订阅消息,发送取消订阅回复报文反馈给接入模块;接收接入模块发送的MQTT心跳消息,发送心跳回复报文反馈给接入模块;正常情况下,Broker1接收接入模块发送的MQTT发布类型消息,发送发布回复报文反馈给接入模块;当Broker1断开连接时,Broker1发送Broker1的断连状态给接入模块;当客户端没有收到发布回复报文时,Broker2接收接入模块发送的发布dup报文,Broker2发送发布dup回复报文反馈给接入模块。
7.根据权利要求6所述的适用于边缘物联终端的MQTT双Broker数据交互系统,其特征在于,所述客户端与所述接入模块之间没有关联逻辑,Broker 1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
8.适用于边缘物联终端的MQTT双Broker数据交互方法,其特征在于,包括如下步骤:
步骤SS1:客户端向接入模块发送MQTT连接消息,由接入模块分别向Broker1和Broker2转发连接消息,并将连接回复报文转发给客户端,完成连接;
步骤SS2:客户端向接入模块发送MQTT主题订阅消息,由接入模块分别向Broker1和Broker2转发连接消息,并将订阅回复报文转发给客户端,完成主题订阅;
步骤SS3:客户端向接入模块发送MQTT主题取消订阅消息,由接入模块分别向Broker1和Broker2转发连接消息,并将取消订阅回复报文转发给客户端,完成主题订阅取消;
步骤SS4:客户端向接入模块发送MQTT心跳消息,由接入模块分别向Broker1和Broker2转发连接消息,并将心跳回复报文转发给客户端,保证客户端对Broker1和Broker2在线;
步骤SS5:正常情况下,客户端向接入模块发送MQTT发布类型消息,接入模块将消息转发给Broker 1,并将发布回复报文转发给客户端;
步骤SS6:当Broker 1断开连接时,接入模块检测到Broker 1断连状态,并将消息通道调整为Broker 2;
步骤SS7:当客户端没有收到发布回复报文时,根据报文分类确认QoS设置,再次发送发布dup报文,接入模块将消息转发给Broker 2,并将发布dup回复报文转发给客户端。
9.根据权利要求8所述的适用于边缘物联终端的MQTT双Broker数据交互方法,其特征在于,所述客户端与所述接入模块之间没有关联逻辑,Broker 1阻塞时选择Broker 2,Broker 2阻塞时选择Broker 1,相互之间独立选择,达成被动负载平衡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010918092.7A CN112104720B (zh) | 2020-09-03 | 2020-09-03 | 适用于边缘物联终端的MQTT双Broker数据交互方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010918092.7A CN112104720B (zh) | 2020-09-03 | 2020-09-03 | 适用于边缘物联终端的MQTT双Broker数据交互方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112104720A CN112104720A (zh) | 2020-12-18 |
CN112104720B true CN112104720B (zh) | 2024-04-26 |
Family
ID=73757664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010918092.7A Active CN112104720B (zh) | 2020-09-03 | 2020-09-03 | 适用于边缘物联终端的MQTT双Broker数据交互方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112104720B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112583941B (zh) * | 2021-02-24 | 2021-05-28 | 国网江苏省电力有限公司信息通信分公司 | 一种支持接入多电力终端的方法、单元节点及电力物联网 |
CN113206872B (zh) * | 2021-04-22 | 2022-06-03 | 深圳感臻智能股份有限公司 | 一种消息发送方法、终端及计算机存储介质 |
CN113194156B (zh) * | 2021-07-01 | 2021-09-03 | 广州得一物联科技有限公司 | 一种边缘设备的数据同步方法及系统 |
CN113452800B (zh) * | 2021-08-31 | 2021-11-30 | 深圳市信润富联数字科技有限公司 | 基于MQTT协议多Broker实现负载均衡的方法 |
CN114390033A (zh) * | 2021-12-28 | 2022-04-22 | 国网天津市电力公司营销服务中心 | 基于可扩展通信协议的回路状态巡检仪采集系统及方法 |
CN114338479B (zh) * | 2022-01-04 | 2024-03-22 | 北京金山云网络技术有限公司 | 通讯方法、装置和系统 |
CN114090303B (zh) * | 2022-01-14 | 2022-05-03 | 杭州义益钛迪信息技术有限公司 | 软件模块调度方法、装置、电子设备、存储介质及产品 |
CN115242768A (zh) * | 2022-06-30 | 2022-10-25 | 南京南瑞继保电气有限公司 | 一种地铁综合监控系统数据转发方法、装置及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106385410A (zh) * | 2016-09-08 | 2017-02-08 | 四川长虹电器股份有限公司 | 基于mqtt的智能家电设备控制系统 |
CN106657130A (zh) * | 2017-01-09 | 2017-05-10 | 上海浦东软件园汇智软件发展有限公司 | 一种基于mqtt的访问认证的方法及设备 |
CN108173739A (zh) * | 2017-11-29 | 2018-06-15 | 成都东方盛行电子有限责任公司 | 一种基于mqtt的云服务消息处理方法 |
KR20180071002A (ko) * | 2016-12-19 | 2018-06-27 | 충남대학교산학협력단 | Mqtt 어댑터 및 이를 이용한 토픽 처리 방법 |
CN109391500A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 一种配置管理方法、装置及设备 |
CN109995873A (zh) * | 2019-04-10 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种管理客户端、设备监控系统及方法 |
CN111147590A (zh) * | 2019-12-28 | 2020-05-12 | 苏州摩联通信技术有限公司 | 信息处理装置、电子设备 |
CN111343289A (zh) * | 2020-05-22 | 2020-06-26 | 苏宁智能终端有限公司 | 基于mqtt协议的消息推送方法及系统 |
CN111343700A (zh) * | 2018-12-19 | 2020-06-26 | 南宁富桂精密工业有限公司 | 无线传感网络通信方法 |
CN111555945A (zh) * | 2020-05-20 | 2020-08-18 | 四川九州电子科技股份有限公司 | 基于mqtt协议的通用网络通信系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10637960B2 (en) * | 2016-10-21 | 2020-04-28 | Infiswift Technologies, Inc. | Method for bridging publish/subscribe brokers for guaranteed low-latency delivery |
US10645181B2 (en) * | 2016-12-12 | 2020-05-05 | Sap Se | Meta broker for publish-subscribe-based messaging |
US10708360B2 (en) * | 2017-03-14 | 2020-07-07 | Infiswift Technologies, Inc. | Method for transport agnostic communication between internet of things client and broker |
US10812578B2 (en) * | 2018-01-17 | 2020-10-20 | International Business Machines Corporation | Migration of durable clients in a clustered publish/subscribe system |
-
2020
- 2020-09-03 CN CN202010918092.7A patent/CN112104720B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106385410A (zh) * | 2016-09-08 | 2017-02-08 | 四川长虹电器股份有限公司 | 基于mqtt的智能家电设备控制系统 |
KR20180071002A (ko) * | 2016-12-19 | 2018-06-27 | 충남대학교산학협력단 | Mqtt 어댑터 및 이를 이용한 토픽 처리 방법 |
CN106657130A (zh) * | 2017-01-09 | 2017-05-10 | 上海浦东软件园汇智软件发展有限公司 | 一种基于mqtt的访问认证的方法及设备 |
CN109391500A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 一种配置管理方法、装置及设备 |
CN108173739A (zh) * | 2017-11-29 | 2018-06-15 | 成都东方盛行电子有限责任公司 | 一种基于mqtt的云服务消息处理方法 |
CN111343700A (zh) * | 2018-12-19 | 2020-06-26 | 南宁富桂精密工业有限公司 | 无线传感网络通信方法 |
CN109995873A (zh) * | 2019-04-10 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种管理客户端、设备监控系统及方法 |
CN111147590A (zh) * | 2019-12-28 | 2020-05-12 | 苏州摩联通信技术有限公司 | 信息处理装置、电子设备 |
CN111555945A (zh) * | 2020-05-20 | 2020-08-18 | 四川九州电子科技股份有限公司 | 基于mqtt协议的通用网络通信系统 |
CN111343289A (zh) * | 2020-05-22 | 2020-06-26 | 苏宁智能终端有限公司 | 基于mqtt协议的消息推送方法及系统 |
Non-Patent Citations (3)
Title |
---|
A Comparative Analysis on Security of MQTT Brokers;Jaidip Kotak;2nd Smart Cities Symposium (SCS 2019);全文 * |
Improving MQTT by Inclusion of Usage Control;Antonio La Marra et al.;International Conference on Security, Privacy and Anonymity in Computation, Communication and Storage;全文 * |
基于MQTT协议与开源硬件的智能监控系统;陈建刚;黄国伟;刘星明;丘晓彬;李子贤;;单片机与嵌入式系统应用(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112104720A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104720B (zh) | 适用于边缘物联终端的MQTT双Broker数据交互方法及系统 | |
CN100499507C (zh) | 一种容灾系统、方法和网络设备 | |
CN101557315A (zh) | 一种主备切换方法、装置及系统 | |
CN105099793A (zh) | 热备方法、装置及系统 | |
CN101841735B (zh) | 框式交换机及堆叠系统以及堆叠后故障处理方法 | |
CN102170342A (zh) | 一种高冗余配置下的iec104通信主备切换方法 | |
CN113541764B (zh) | 一种多星组网的地面管控系统 | |
CN112217847A (zh) | 微服务平台及其实现方法、电子设备及存储介质 | |
CN107040403A (zh) | 基于dds技术提高分布式系统可靠性的方法 | |
CN104717152A (zh) | 一种实现接口缓存动态分配的方法和装置 | |
CN101482829A (zh) | 集群系统、处理装置及集群系统冗余方法 | |
CN103441878A (zh) | Vcf网络中pe设备的归属处理方法及设备 | |
CN108234623B (zh) | 配网主站数据采集链路自动均衡管理方法 | |
CN105763442A (zh) | 主备倒换lacp聚合链路不中断的pon系统及方法 | |
CN105721553A (zh) | 一种自适应集群消息分发器 | |
CN107682410A (zh) | 一种分布式sdn控制器集群的控制方法及装置 | |
CN114039978B (zh) | 一种去中心化的PoW算力集群部署方法 | |
CN101656678A (zh) | 传输数据流的方法和装置 | |
CN103716186B (zh) | 具有网络故障容错能力的人工话务系统及其方法 | |
CN113721593A (zh) | 一种优化备份功能的综合航电系统 | |
CN101655812B (zh) | 一种自适应数据备份系统及其方法 | |
CN110784365A (zh) | 变电站的站控层、实体装置的备用装置及其自动上线方法 | |
CN101146037A (zh) | 多框级联系统、业务处理方法 | |
CN115378557B (zh) | 热备实现方法、装置、系统、电子设备及存储介质 | |
CN112612654B (zh) | 空管自动化系统多机主备切换方法及冗余服务系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |