RabbitMQ是使用最广泛的开源消息代理之一。它最初基于高级消息队列协议(AMQP)。后来,对它进行了修改,以支持消息队列遥测传输(MQTT),流文本定向消息协议(STOMP)和其他几种常见协议。
MQTT是为IOT设备开发的基于轻量级pub-sub的消息传递技术。它用于与网络带宽昂贵的远程设备(具有一定限制)进行通信。
RabbitMQ与MQTT之间的主要区别
让我们看一下RabbitMQ与MQTT之间的主要区别,如下所示:
一、MQTT旨在用于通过低带宽网络发送消息的小型设备。它以其简单性(仅5 Apis)和最小的导线占用面积而闻名。
RabbitMQ主要用于已可靠的,大规模的,群集的,被设计用于过去25年中开发的各种消息传递方案。它以可靠性和互操作性而闻名。它已经以多种语言实现;因此,它是构建可靠的,大规模的,群集的,有弹性的消息传递基础结构的最佳选择之一。
二、MQTT仅支持pub-sub消息传递技术。在消息寿命短并且连接的订户和发布者处于活动路由的情况下,这很有用。因此,将MQTT用于经典的长寿命消息队列很麻烦。
RabbitMQ支持几乎所有的消息传递形式,例如pub-sub,循环,消息队列等。它还支持消息分组和幂等消息。就访问队列而言,它支持许多精细控制。可以限制对某些队列的访问,管理深度等等。
三、MQTT不支持事务,并且允许一些基本的确认。
RabbitMQ不仅支持针对不同用例的各种确认,而且还支持跨消息队列的事务。它还允许隔离各种事务性语义(如果需要)。它还允许像X / Open XA事务这样的分布式事务。
四、MQTT并没有配备任何安全协议。因此,我们需要花费额外的时间/资源来集成任何安全协议。在连接安全性方面
RabbitMQ与MQTT相比具有一些明显的优势。它开箱即用,支持SASL,TLS和IETF集RFC。它还进行了自我更新,以支持GS2和SCRAM-SHA等现代SASL机制。
版权归原作者 ColoursStarry sky 所有, 如有侵权,请联系我们删除。