您的位置 首页 新闻

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(下)

本期文章,我们将对这一结果进行进一步的解析。造成差距的原因主要有三个:节点间通讯的方式、消息流架构的方式、队列的使用。


在之前的文章EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解析(上)中,我们采用相同的硬件资源分别对 MQTT 消息服务器 EMQ X 以及 RabbitMQ 进行了压力测试。结果表明:正在「多对一」 场景中,EMQ X 以及 RabbitMQ 相比并没有太大差别;而在「一对多」场景中,RabbitMQ 则较 EMQ X 产生了较为明显的差距。

本期文章,我们将对这一结果进行进一步的解析。

造成差距的原因主要有三个:节点间通讯的方式、消息流架构的方式、队列的使用。

节点间的通讯

RabbitMQ – 委托架构

RabbitMQ 使用了 Erlang 语言的分布式连接,即每个节点之间两两互相连接,每个节点用一个单一的链接连接着另一个节点。在图中的情况下,三个节点依次连接;当节点之间需要通信时,一条消息需要通过这个单一连接从一个节点发送到另一节点。

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(下)

在扇出(fan-out)的例子中,正常来讲你需要将消息推送到所有节点的队列上。RabbitMQ 使用的优化方式则是:你的消息只需要发送一次,之后其内置的代理委托框架会将这一条消息派送并且发到其他节点的队列上。这个过程中,消息是有序发送的,所以保证了消息在不同队列里都是相同的顺序。

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(下)

但是这个方案也不是十全十美的,因为你会将所有的消息只发送一次,在分发工作都依靠同一个委托进程。并且 RabbitMQ 选择这个代理进程的策略是根据发布者的哈希算法。以是,当如果你只有一个发布者,所有的消息都会被一直推送到单个的委托代理进程。

展开全文

在之前的文章EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解析(上)中,我们采用相同的硬件资源分别对 MQTT 消息服务器 EMQ X 以及 RabbitMQ 进行了压力测试。结果表明:正在「多对一」 场景中,EMQ X 以及 RabbitMQ 相比并没有太大差别;而在「一对多」场景中,RabbitMQ 则较 EMQ X 产生了较为明显的差距。

本期文章,我们将对这一结果进行进一步的解析。

造成差距的原因主要有三个:节点间通讯的方式、消息流架构的方式、队列的使用。

节点间的通讯

RabbitMQ – 委托架构

RabbitMQ 使用了 Erlang 语言的分布式连接,即每个节点之间两两互相连接,每个节点用一个单一的链接连接着另一个节点。在图中的情况下,三个节点依次连接;当节点之间需要通信时,一条消息需要通过这个单一连接从一个节点发送到另一节点。

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(下)

在扇出(fan-out)的例子中,正常来讲你需要将消息推送到所有节点的队列上。RabbitMQ 使用的优化方式则是:你的消息只需要发送一次,之后其内置的代理委托框架会将这一条消息派送并且发到其他节点的队列上。这个过程中,消息是有序发送的,所以保证了消息在不同队列里都是相同的顺序。

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(下)

但是这个方案也不是十全十美的,因为你会将所有的消息只发送一次,在分发工作都依靠同一个委托进程。并且 RabbitMQ 选择这个代理进程的策略是根据发布者的哈希算法。以是,当如果你只有一个发布者,所有的消息都会被一直推送到单个的委托代理进程。

责任编辑:

本文来自网络,不代表大墨新闻网立场,转载请注明出处:http://www.mbbnew.cn/134143.html

作者: 大墨新闻网

为您推荐

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

在线咨询: QQ交谈

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部