Mosquitto vs Mosca水平可扩展性和弹性?

时间:2016-10-25 00:00:37

标签: mqtt mosquitto mosca

我计划使用Mosca或Mosquitto代理(因为它们是开源代码),以实现具有消息队列复制的可扩展体系结构,以避免在代理最终发生故障时丢失代理尚未提供的消息。登记/> 正如我所读到的,mosquitto是一种成熟且非常稳定的解决方案,具有使用桥接器的水平可扩展性。但我找不到任何插件将消息写入数据库(所有经纪人都很常见),所以我认为这是一个限制,因为如果我们有两个经纪人负载平衡而其中一个死了,那么这个的所有消息在经纪人恢复之前,经纪人无法交付。 另一方面,Mosca允许我们使用Redis进行扩展,如果代理1死亡,那么broker2仍然可以传递消息,因为它们存储在公共数据库中。通过这种方式,我可以使用redis的主从配置来避免单点故障。

所以我的问题是:

1)mosca是一个很好的生产选择吗?

2)是否可以使用redis来分配带有mosquitto的消息队列?

1 个答案:

答案 0 :(得分:7)

水平可伸缩性非常难以作为MQTT代理的功能添加,因为它需要从一开始就为该可扩展性进行工程设计。此外,仅为未传递的消息复制队列对于弹性或容错无效。

即使它很容易添加,我也不会使用redis,因为它基本上会丢失消息:https://aphyr.com/posts/283-jepsen-redis

如果您想要水平可扩展性,我建议您查看内置集群,水平(或更好:线性)可扩展性并允许网络拆分的代理。

以下是关于MQTT和群集的系列:http://www.hivemq.com/blog/clustering-mqtt-introduction-benefits/