我正在测试 ZeroMQ 作为中型系统的 Pub-Sub(服务总线样式)基础设施。我们大约有 50 个节点,它们都应该是发布者和订阅者。网络是一种星型拓扑,但边缘相互“对话”。我们需要动态发现(无需对参与者的网络地址进行硬编码),但也不需要 SPOF(单点故障)。
我已阅读http://zeromq.org/whitepapers:0mq-3-0-pubsub并且据我了解,建议的 0MQ 动态发现方式涉及转发订阅和发布的代理节点 (XPUB/XSUB)。我考虑在我们的系统中使用这样的代理作为中央调解器,但是,我对这种架构有以下担忧:(A)代理节点是 SPOF - 当它失败时,整个系统无法运行(B)所有流量,包括数据,通过代理节点,这意味着延迟和性能问题。
假设我正确理解了 pub-sub 白皮书,是否有一种相对简单的方法可以在 ZeroMQ 中实现 pub-sub + dynamic-discovery + no-SPOF?
附加点:我已经排除了多播(PGM)解决方案,因为大多数消息都有一个/几个感兴趣的方,我们不喜欢过度拥挤网络。