我的理解,MQTT 和物联网 (IoT) 联系在一起,MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。车联网也是类似的场景,也是选 MQTT 偏多。MQTT 和 HTTPS 最主要区别在于,MQTT 是异步消息通性机制,HTTPS 是同步请求响应式的机制。车联网这种应用场景,需...
显示全部我的理解,MQTT 和物联网 (IoT) 联系在一起,MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的,已成为 IoT 通信的标准。车联网也是类似的场景,也是选 MQTT 偏多。
MQTT 和 HTTPS 最主要区别在于,MQTT 是异步消息通性机制,HTTPS 是同步请求响应式的机制。车联网这种应用场景,需要处理大量事件消息,MQTT 后端一般都是高性能消息中间件,消息中间件可以有效处理这些消息。如果采用 HTTPS 会有一定的局限性。根据 [1] 链接中描述,这些局限体现在:
- HTTP 是一种同步协议。客户端需要等待服务器响应。Web 浏览器具有这样的要求,但它的代价是牺牲了可伸缩性。在 IoT 领域,大量设备以及很可能不可靠或高延迟的网络使得同步通信成为问题。异步消息协议更适合 IoT 应用程序。传感器发送读数,让网络确定将其传送到目标设备和服务的最佳路线和时间。
- HTTP 是单向的。客户端必须发起连接。在 IoT 应用程序中,设备或传感器通常是客户端,这意味着它们无法被动地接收来自网络的命令。
- HTTP 是一种 1-1 协议。客户端发出请求,服务器进行响应。将消息传送到网络上的所有设备上,不但很困难,而且成本很高,而这是 IoT 应用程序中的一种常见使用情况。
- HTTP 是一种有许多标头和规则的重量级协议。它不适合受限的网络。
从未来发展来看,建议选择 MQTT。另外 [2] 链接,红帽的 MQ 很好的支持 MQTT,事件流,也可以和容器云集合,是车联网很好的一个选择。
[1] https://www.ibm.com/developerworks/cn/iot/iot-mqtt-why-good-for-iot/index.html
[2] https://www.redhat.com/en/technologies/jboss-middleware/amq
收起