
如今,大多数物联网实现都使用从客户端到服务器的基于 REST over HTTP 的连接。REST 有其自身的限制,当您的解决方案扩展到更多的设备和每秒更多的翻译时,它会弹出。MQTT是专为物联网设计的基于发布订阅模型的轻量级协议,在各个维度上都优于REST。Bevywise MQTT Broker 是安全 MQTT 云部署的完美中间件。本博客比较了 MQTT 与 REST,以帮助您最终确定通信协议。
REST是一种多功能架构,具有良好的灵活性和可扩展性,维护成本低。但主要缺点是请求处理时间和带宽使用延迟。这是因为,REST 是单向连接。与服务器的连接是间歇性的。客户端在需要时连接到服务器以从客户端推送数据,并将数据下拉到客户端。服务器需要等待客户端连接才能发送用于客户端的数据。因此,这使得用户打算执行等待客户端连接的操作。大多数解决方案提供商允许其边缘服务器或网关每 1 分钟或更长时间连接一次,以便不加载服务器。
以从移动应用程序激活灯为例。来自手机的消息将立即到达服务器。但是从服务器到客户端的消息需要等待客户端连接的时间。
MQTT 允许客户端始终连接,在客户端和服务器之间提供双向通信。这允许服务器将消息推送到边缘设备,使设备按照客户的预期立即响应您的命令。
当直接比较 MQTT 与 REST 进行相同的数据传输时,MQTT 消耗的功耗降低了 20%。但是,在 REST 的情况下,大部分能量都损失在服务器和客户端的连接和断开连接以及资源清理中使用的资源上。因此,当您构建电池供电的远程设备时,MQTT 可帮助您获得比 REST 更长的电池寿命。
出于安全原因,当今大多数设备都部署在防火墙后面。REST 的限制之一是服务器无法按需从服务器到客户端进行通信。即使我们将 REST 服务器放在客户端设备上并尝试从服务器建立连接,当设备安装在防火墙后面时,它也会失败。但 MQTT 本质上解决了与持久连接双向通信的问题。
MQTT 始终与间歇性 REST 调用连接。由于永久连接,不需要为每个数据传输进行连接和断开连接。与 REST 进行的重新连接连接调用相比,保持活动状态 ping 的开销要小得多。根据分析和测试报告,MQTT 数据传输的传输速度比 REST 调用快 20 到 25 倍。
消息事务的数量在很大程度上取决于服务器在规定的时间内可以接受的连接数量。当今最快的可用 Web 服务器的并发连接数约为每秒 1000 个。这将限制按顺序传输数据。MQTT 代理在商品服务器上每秒最多可以处理 40,000 条消息。代理可以保持的并行连接数可以再次根据硬件进行调整。一个简单的商用服务器最多可以并行容纳 50,000 个连接。
使MQTT比REST有价值的关键特性是其错误处理功能,灵活性和可扩展性。值得注意的是,改进的错误处理提供了有关错误的更易读性的信息,这些信息提供了断开连接的原因。MQTT 5 协议规范支持绝对错误处理,有利于诊断以了解实际发生的情况。此外,MQTT 5 支持完美的负载均衡和简单的消息处理。这个功能丰富的协议的主要功能是它迎合了可扩展性和大规模工业部署的增强。
在一个明显的优势中,MQTT赢得了物联网实施的MQTT vs REST选择。要了解有关 MQTT 及其包结构的更多信息,请查看开发 MQTT 客户端指南。试用 MQTTRoute 当今最快的 MQTT 代理。MQTTRoute 还提供 MQTT REST API 来帮助您控制和管理边缘设备。它支持一组广泛的 REST API,可用于从任何外部应用程序控制设备。要了解 Bevywise MQTT Broker 支持的 REST API 调用,请导航到 MQTT Broker API。

免费的MQTT broker
Host: broker.hivemq.com TCP Port: 1883 Websocket Port: 8000 TLS TCP Port: 8883 TLS Websocket Port: 8884 MQTT Websocket Client (hivemq.com)