[rabbitmq-discuss] How list exchanges managed by a given node ?
Simon MacMullen
simon at rabbitmq.com
Fri Sep 6 11:39:25 BST 2013
On 06/09/2013 11:28AM, Vincent Barat wrote:
>
> Let say an exchange was created by a client connection made on node 1 at
> a time. Then, a producer is connected on node 2 and a consumer is
> connected also on node 2 (with the consumer's queue also on node 2)
> then all the network traffic will follow this path:
>
> producer -> node 2 -> node 1 -> node2 -> consumer
>
> instead of
>
> producer -> node 2 -> consumer
>
> this have a big impact on network and CPU
I really don't think that's the case. Exchanges are routing logic that
runs in the publishing channel process. The exchange, bindings and
queues are looked up in Mnesia beforehand, but Mnesia distributes copies
to all nodes so it's just a memory lookup. Then the exchange does some
routing logic locally. That's it. Honest :-)
[NB: the above is true for the built-in exchange types, it's not
impossible to write an exchange type where routing logic gets made in a
single process somewhere. But we haven't done that.]
Cheers, Simon
--
Simon MacMullen
RabbitMQ, Pivotal
More information about the rabbitmq-discuss
mailing list