【问题标题】:Mosquitto vs Mosca horizontal scalability and resilience?Mosquitto vs Mosca 水平可扩展性和弹性?
【发布时间】:2016-10-25 00:00:36
【问题描述】:

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

所以我的问题是:

1) mosca 是制作的好选择吗?

2) 可以用redis 用mosquitto 分配消息队列吗?

【问题讨论】:

    标签: mqtt mosquitto mosca


    【解决方案1】:

    水平可扩展性很难作为一项功能添加到 MQTT 代理,因为它需要从一开始就针对这种可扩展性进行工程设计。此外,仅复制未传递消息的队列无助于弹性或容错。

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

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

    这里是一个关于 MQTT 和集群的系列:http://www.hivemq.com/blog/clustering-mqtt-introduction-benefits/

    【讨论】:

      猜你喜欢
      • 2018-08-21
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 2019-06-18
      • 2020-05-15
      • 2017-08-27
      • 2012-05-03
      • 2012-03-24
      相关资源
      最近更新 更多