IBM IoT Foundation允许设备向IBM云提交事件以供使用和记录。似乎有两种主要机制来实现事件的传输...... MQTT和REST(HTTP POST请求)。假设一个项目的传感器可以通过Internet直接与IBM云连接,那么我们可以认为这两种技术之间存在潜在的区别?我们选择MQTT或REST作为使用技术的因素是什么?在IBM最后一英里是否有任何实质性的性能差异会说一种技术比另一种技术更受欢迎?
答案 0 :(得分:10)
MQTT旨在成为一种快速,轻量级的消息传递协议,因此,当用于执行等效操作时,它比HTTP更快,更高效。更高效不仅意味着更少的交通数据和更快的速度,而且有时它也意味着更少的电力。在带宽受到关注的情况下,MQTT特别好。
但是,MQTT确实需要一个客户端实现(如Paho),这可能是一个比HTTP客户端实现更罕见的东西,它会更普遍,因此在任何给定的设备上更容易/更容易获得。还有TCP / IP端口注意事项,其中某些网络硬件可能需要HTTP端口80或443(尽管IoTF支持端口443上的MQTT和MQTTWS)。
选择HTTP而不是MQTT(或者说COAP)可能还有一个意识形态或哲学上的原因,但通常,我会说选择HTTP而不是MQTT的原因是与网络相关或与客户端支持相关。< / p>
目前还没有关于性能差异的官方文件,但可以肯定地说,只要有任何消息传递方案(长期存在的连接或特殊情况等),MQTT将更有效,更快。
答案 1 :(得分:0)
我会将考虑因素总结为: