我有一个用 Node.js 编写的分布式应用程序,并希望将消息广播到所有节点。我需要的是:
- 保证交货(至少一次)
- 横向可扩展性
- 完全去中心化的架构
到目前为止,我已经了解了 Node.js 的各种模块,例如 Scuttlebutt、node-gossip 及其所有变体。但它们都未能保证交付。
我还查看了 Serf 和 Consul:虽然第一个在保证交付方面失败了,但第二个只有在至少 (n/2)+1 个节点可以访问时才有效,这对我的应用程序来说太弱了。
我还研究了各种消息队列、消息分发系统和协议,例如 RabbitMQ、nsq 和 MQTT。他们都因上述一件或多件事情而失败。
知道如何解决这个问题(不必自己写一个)吗?
PS:我知道这基本上是一个关于模块或工具建议的问题,但我不知道还能问哪里,而且我认为这个意图对于任何从事分布式应用程序的开发人员来说都是一个完全有效的意图。