杂文(8):MQTT

最后更新于2021年3月3日08:54:11
MQTT入门 这个的三级服务质量部分写的太差了,又是错别字又是语句不通顺。其他部分可以看看。

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。订阅者(Subscriber) 会向 消息服务器(Broker) 订阅一个 主题(Topic) 。成功订阅后,消息服务器会将该主题下的消息转发给所有的订阅者。
MQTT的三级服务质量(Quality of Service,QoS):
级别0:最多一次。到达不到达发布者不管,发布者(客户端,服务端做为发送端的时候)只发送一次,不管接收端是否收到数据;
级别1:至少一次。接收者如果没有知会或者知会本身丢失,发布者会再次发送以保证接收者至少会收到一次,当然可能造成重复消息。
级别2:恰好一次。只有一次到达,发布者需要到达后确认,接收者需要发布者再次确认。

MQTT的特点,我主要写几个看得懂的(来自百度百科):

  1. 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
  2. 使用 TCP/IP 提供网络连接;
  3. 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量。

之所以选择MQTT,原因是:

  1. 快:小型传输,开销很小,上面说过了;
  2. 稳定:为了满足不同的场景,MQTT支持三种不同级别的服务质量(Quality of Service,QoS)为不同场景提供消息可靠性;
  3. 行业内通用:出售软件主要是出售的客户端,需要保证对消息中间件的支持。(简单说就是人家问你哎呀你们这个java和c#的程序支不支持MQTT呀,你能说支持的)

EMQ X是一个MQTT Broker(消息中间件)。
EMQ X 程序包下载地址
在我的项目中是通过docker镜像方式安装的EMQ服务器。

猜你喜欢

转载自blog.csdn.net/weixin_44445507/article/details/114368116