我正在测试ZeroMQ作为中型系统的Pub-Sub(服务总线)基础设施。我们大约有50个节点,所有这些节点都应该是发布者和订阅者。网络有点像星形拓扑结构,但边缘之间会“通信”。我们需要动态发现(无需硬编码参与者的网络地址),但也不需要单点故障(SPOF)。
我已经阅读了http://zeromq.org/whitepapers:0mq-3-0-pubsub,根据我的理解,建议的ZeroMQ实现动态发现的方法涉及代理节点(XPUB/XSUB),该节点转发订阅和发布。 我考虑在我们的系统中使用这样的代理作为中心协调器,然而,我对这种架构有以下担忧: (A) 代理节点是SPOF-当它失败时,整个系统将不起作用 (B) 所有流量,包括数据,都通过代理节点传递,这意味着延迟和性能问题。 假设我正确理解了pub-sub白皮书,有没有相对简单的方法来实现ZeroMQ的pub-sub + 动态发现 + 无SPOF?
我已经阅读了http://zeromq.org/whitepapers:0mq-3-0-pubsub,根据我的理解,建议的ZeroMQ实现动态发现的方法涉及代理节点(XPUB/XSUB),该节点转发订阅和发布。 我考虑在我们的系统中使用这样的代理作为中心协调器,然而,我对这种架构有以下担忧: (A) 代理节点是SPOF-当它失败时,整个系统将不起作用 (B) 所有流量,包括数据,都通过代理节点传递,这意味着延迟和性能问题。 假设我正确理解了pub-sub白皮书,有没有相对简单的方法来实现ZeroMQ的pub-sub + 动态发现 + 无SPOF?
附加说明:我已排除多播(PGM)解决方案,因为大多数消息只有一个/少数感兴趣的方,我们不希望过度拥挤网络。
bind
,发布者和订阅者使用connect
。 - raffian