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