首页 > 编程知识 正文

mqtt集群方案,MQTT协议采用什么方式通信

时间:2023-05-04 10:28:10 阅读:44143 作者:2222

一. MQTT配置文件MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布/订阅信息传输协议。 MQTT可以在时间和空间上分离消息发送者和接收者,并扩展到不可靠的网络环境。 适用于设备硬件存储容量有限或网络带宽有限的情况。 物联网使能设备能够使用MQTT协议访问MQTT的特点是能够保持较长的连接并具有一定的实时性。 云向设备侧发送消息,设备侧可以在最短时间内接收并响应,因此MQTT适合需要实时控制的情况,适合执行机构。 要保持长时间的连接,有时必须发送心跳信号,无法省电。 所以低功耗的情况不适合MQTT。 MQTT的长连接必须基于TCP构建,TCP协议的复杂性决定了对设备的要求高于对UDP的要求。

MQTT框架图

三、MQTT特征MQTT协议是一种用于大量计算能力有限、且在低带宽不可靠网络中工作的遥感器与控制设备通信的协议,具有以下主要几个特性:

消息传输,其使用传递/订阅消息模式来提供消息传递一对多,并阻断负载断开APP应用的耦合; 有三种类型的使用TCP/IP的网络连接信息发布服务的质量。 定读等级(QoS )分为0、1、2三个等级,简单来说等级越高越可靠。 33558www.Sina.com/(QoS0) :消息传递完全依赖于底层TCP/IP网络。 会发生消息丢失或重复。 此级别表示环境传感器数据可以丢失一次读取记录。 因为最近有第二次发送。 推送结束。 不管对方是否收到,收到了什么,数据是否丢失都没有关系。

33558www.Sina.com/(QoS1) :允许消息到达,但可能会发生消息重复。 也就是说,收到推送后,必须向对方回复推送,告诉对方收到了。 否则,对方会认为你没有收到,过一会儿再推回去,直到你把推回去还给对方。

33558www.Sina.com/(QoS2) :确认收到一次信息。 如果计费系统中的消息重复或丢失,结果不正确,则可以使用此级别。

小型传输,开销小(固定长度的报头为2字节),最小化协议交换以减少网络通信; 一种使用Last Will和Testament特性向相关方客户端通知异常中断的机制。 Last Will :一种遗嘱机制,用于通知同一主题下的其他设备发送遗嘱的设备已断开。 Testament:遗嘱机制类似于Last Will。

MQTT客户端注册典型的遗愿遗嘱消息,如果它们断开,代理可以发送。 这些消息可用于在设备断开时向订阅者发送信号。

1.MQTT协议原理1.MQTT协议实现框图

2. “至多一次”协议实现方式要实现MQTT协议,客户端和服务器端的MQTT协议包括发布者(Publish )、代理(Broker )、服务器和这里,消息的发布者和订阅者都是客户端,消息代理是服务器,消息的发布者可以同时是订阅者。

MQTT发送的消息分为主题和有效载荷两部分

主题:可理解为消息类型,当订阅者订阅时,将收到该主题的消息内容(payload )。

Payload :消息的内容可以理解为读者具体使用的内容。

3 .网络传输和APP应用消息MQTT构建基础网络传输。 建立客户端到服务器的连接,并提供基于有序无损字节流的双向传输。 当经由MQTT网络传输APP应用数据时,MQTT将与其相关联的服务质量(QoS )与主题名称(Topic )相关联。

4.MQTT客户端使用MQTT协议的APP应用程序或设备。 始终建立与服务的网络连接。 客户端可以执行以下操作:

发布其他客户端可能订阅的信息。 订阅来自其他客户端的消息。 取消注册或移除APP应用程序的消息。 断开与服务器的连接。 5.MQTT服务器MQTT服务器称为“消息代理”(Broker ),可以是APP应用程序或设备。 这介于消息发布者和订阅者之间,可以:

接受客户的网络连接。 接受客户发布的APP应用信息。 处理来自客户端的订阅/取消订阅请求。 将APP应用程序消息转发给订阅的客户。 6 .订阅6.MQTT协议、主题和会话包括主题过滤器(Topic Filter )和最大服务质量(QoS )的订阅订阅与“会话”(Session )相关联。 一个会话可以包含多个订阅。 每个会话的每个订阅都有不同的主题过滤器。

会话(Session )每个客户端与服务器建立连接时都是一个会话,其中客户端和服务器之间存在状态交互。 会话位于网络之间,并且可能跨越客户端和服务器之间的多个连续网络连接。

“主题名称”(Topic Name )将附加到与服务订阅相匹配的APP应用程序消息的标签上。 服务器向订阅了匹配标签的每个客户端发送消息。

使用“主题过滤器”(Topic Filter )主题名称的通配符过滤器订阅演示文稿

式中使用,表示订阅所匹配到的多个主题。

 负载(Payload)

消息订阅者所具体接收的内容。

7、 MQTT协议中的方法

MQTT协议中定义了一些方法(也被称为动作), 来于表示对确定资源所进行操作。 这个资源可以代表预先存在的数据或动态生成数据,这取决于服务器的实现。通常来说,资源指服务器上的文件或输出。

Connect:等待与服务器建立连接。Disconnect:等待MQTT客户端完成所做的工作,并与服务器断开TCP/IP会话。Subscribe:等待完成订阅。UnSubscribe:等待服务器取消客户端的一个或多个topics订阅。Publish:MQTT客户端发送消息请求,发送完成后返回应用程序线程。五.MQTT优缺点 1.优点 适用于受限网络的轻量级。灵活选择具有给定功能的服务质量。由OASIS技术委员会标准化。实施简单快捷。协议简洁轻巧,数据冗余量低。并且支持的设备从智能硬件到智能手机无所不包。

MQTT协议的优势是可以支持所有平台,它几乎可以把所有的联网物品和互联网连接起来。特别适合于网络代价昂贵,带宽低、不可靠的环境。能在处理器和内存资源有限的嵌入式设备中运行。

2.缺点 由于基于TCP的连接,功耗很高。缺乏加密。服务器端实现难度大,虽然已经有了C++版本的服务端组件,但是并不开源,而且在推送数量较大时如何处理并发是比较难的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。