QPID AMQP
我有一个问题正在重新调整网络流量。假设我在 Machine A 上有一个 Publisher 。Qpid 代理正在 Machine B 上运行。我们有两个订阅者机器 C 和机器 D(他们都订阅相同的主题)。现在想象一个拓扑,其中
A-->B-->X-->C | D(发布者A连接到B,订阅者C和D通过中间节点X连接到代理)由A发布的匹配C和D主题的消息将被两者接收。我想知道的是边 b->x 是否会携带消息两次(一次用于 b->x->c,第二次用于 b->x->c)。或者 AMQP/qpid 框架是否足够智能,可以从 B 向 X 发送一次消息,然后向每个单独的订阅者发送副本(因此 b->x 上的网络流量较少)。我的想法是,由于 X 一无所知,并且如果我们为每个订阅者都有私有订阅队列(或者即使共享队列和浏览/复制消息而不是消费),消息将通过 b->x 传输两次
这个问题并不特定于 QPID 。我想知道其他基于代理(RabbitMQ)和无代理消息传递框架(零 MQ,LBM/UMS)的解决方案。我在一篇文章中读到 Zero Mq 试图提供更智能的解决方案http://www.250bpm.com/pubsub#toc4,但这似乎很复杂,因为中间跃点如何知道何时发送多个副本(我不是网络专家,所以我可能会遗漏一些明显的东西,所以任何帮助都将不胜感激)