我听说IBM的一个人谈了 MQTT,他说MQTT是目前最轻量级的消息传递协议.他的论点是,单个消息产生的最小开销是2个字节.但是,我听说HTML5 WebSockets也一样(2字节开销)?无论如何,因为我计划将
Open MQ使用哪种协议,您如何知道?
我认为你混合了一些东西:MQTT是一个应用程序级协议,使用TCP作为传输协议. MQTT也可以与Websockets一起用作传输.如果愿意,MQTT是JMS和AMQP的轻量级替代品.AMQP是JMS的流行且可靠的替代方案,非常适合业务和关键任务消息传递.它功能丰富且使用广泛.请注意,AMQP是一种消息传递协议,而JMS是一种API(甚至可以使用AMQP作为传输).您可以在Java应用程序中直接使用AMQP和库,例如RabbitMQ Java Client.
另一方面,MQTT非常适合遥测数据和场景,在这些场景中,您有许多客户端与单个消息代理进行通信,并且客户端的低带宽使用率,内存效率和电池寿命是关键.
JMS没有定义任何传输协议(与MQTT相反),这里可以使用任何东西.我个人认为TCP也适合这里.
我不知道OpenMQ,但对于JMS和AMQP,我可以推荐ActiveMQ.对于MQTT,有一些经纪人,包括HiveMQ和Mosquitto.
强制性免责声明:我是HiveMQ的开发者,所以我可能有点偏颇;-)