MQTT历史
MQTT 协议于 1999 年发明,用于石油和天然气行业。工程师需要一种协议来实现最小带宽和最小电池损耗,以通过卫星监控石油管道。
最初,该协议被称为Message Queuing Telemetry Transport(消息队列遥测传输),得名于首先支持其初始阶段的 IBM 产品 MQ 系列。2010 年,IBM 发布了 MQTT 3.1 作为任何人都可以实施的免费开放协议,然后于 2013 年将其提交给结构化信息标准促进组织 (OASIS) 规范机构进行维护。2019 年,OASIS 发布了升级的 MQTT 版本 5。现在 MQTT 不再是首字母缩写词,而是被认为是协议的正式名称。
MQTT 背后的原理是什么?
MQTT 协议基于发布/订阅模型工作。在传统的网络通信中,客户端直连服务器,相互通信。客户端向服务器请求资源或数据,然后,服务器将处理并发回响应。
但是,MQTT 使用发布/订阅模式将消息发送者(发布者)与消息接收者(订阅者)解耦。相当于做了中间人。即:发送者不再直接发给接受者,而是发给MQTT程序,由MQTT程序发给接受者。称为消息代理的第三个组件将处理发布者和订阅者之间的通信。代理的工作是筛选所有来自发布者的传入消息,并将它们正确地分发给订阅者。代理将发布者和订阅者解耦,如下所示:
空间解耦
发布者和订阅者不知道彼此的网络位置,也不交换 IP 地址或端口号等信息。
时间解耦
发布者和订阅者不会同时运行或具有网络连接。
同步解耦
发布者和订阅者都可以发送或接收消息,而不会互相干扰。例如,订阅者不必等待发布者发送消息。
MQTT和kafka
MQTT 是协议,Kafka是软件。
MQTT 是协议,是一个技术标准,由 OASIS 技术委员会的成员(其成员多数为 IBM 和微软的顶级工程师)制订,IBM在1999年发布。“MQTT”中的“MQ” 是来自于IBM的MQ系列消息队列产品线。
Kafka是一个程序,具体点说是一个分布式、支持分区的(