IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> MQTT笔记(三)MQTT Broker 选型 -> 正文阅读

[网络协议]MQTT笔记(三)MQTT Broker 选型

MQTT 官方相关链接

MQTT官方整理的开源Broker简要列表

MQTT官方整理的开源Broker详细介绍

MQTT官方整理的开源Broker特性和性能对比

MQTT Broker选型需考虑的因素

1.支持的协议:目前有 mqtt3.1 、mqtt3.1.1、mqtt5.0。3.1 和3.1.1 是最常见的协议。

2.支持的QoS

  • Qos0:发布者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接收到消息。
  • Qos1:发送者最少发送一次消息,确保消息到达Broker,Broker需要返回确认消息PUBACK。在QoS1情况下,Broker可能接收到重复消息。
  • Qos2:使用两个阶段确认来保证消息的不丢失和不重复。在QoS2情况下,Broker肯定会收到消息且只收到一次。

?????? 与Qos1相比,Qos2的开销会很大,因为Broker有额外的两个动作。

????????? 1)去重。为了保证消息不重复,Broker必须进行去重处理。

?????????? 2)确保响应消息PUBREC到达客户端。Broker必须等待客户端PUBREC消息的响应,只有收到客户端的确认消息后,Broker才能对订阅者投递消息。

3.支持遗嘱消息??

?? 通常设备断开都不是主动断开的,需要设置遗嘱消息来处理。遗嘱消息一般通过在客户端Connect的时候指定。当客户端异常断开时,任何订阅了遗嘱消息的客户端可以收到该遗嘱的消息。 以下情况会发送遗嘱消息

  • ? 1)服务器端发生了I/O 错误或者网络失败
  • ?? 2)客户端在定义的心跳时期失联。
  • ?? 3)客户端在发送下线包之前关闭网络连接
  • ?? 4)服务端在收到下线包之前关闭网络连接

4.支持持久化

?? MQTT协议规定,一些数据如QoS1消息,持久Session需要支持持久化。

5.支持多种连接方式

??? MQTT over TCP:最基础的连接方式

??? MQTT over Websocket:在Websocket之上做MQTT封装,对APP这种客户端来说很友好

??? MQTT over TCP/SSL:基础连接方式做通信加密,通常SSL采用TLS

??? MQTT over Websocket/SSL:Websocket做通信加密,通常SSL采用TLS

6.保留消息(可选)

7.集群

8.自定义验证方式

??? 验证客户端的合法性有三点:CONNECT阶段验证是否允许连接、PUBLISH阶段验证是否允许发布、SUBSCRIBE阶段验证是否允许订阅。

9.支持共享订阅

??? 共享订阅的具体含义是,多个客户端订阅同一个主题,消息只会被分发给其中的一个客户端。

共享订阅主要针对的是需要客户端负载均衡的场景,比如后端服务多个Worker,需要共享订阅来只让一个Worker得到数据

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:42:25  更:2021-08-05 17:42:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:32:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码