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

niq*_*qui 2 mqtt mosquitto mosca

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

所以我的问题是:

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

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

Dom*_*ier 7

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

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

如果你想要水平可扩展性,我建议你检查一个内置集群,水平(或更好:线性)可扩展性并允许网络分裂的代理.

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