[rabbitmq-discuss] Flow Control
0x6e6562 at gmail.com
Wed Oct 22 17:40:17 BST 2008
On Wed, Oct 22, 2008 at 4:58 PM, Brian Sullivan <bsullivan at lindenlab.com> wrote:
> Actually, we are going to use the Python library on the log parsing and
> publication side. :) The Java client is used on the consuming end.
Makes sense - use the right tool for the right job :-)
> Just to be clear, the "catch all" part is the logging file. When we parse
> the file and convert into messages to send to RabbitMQ, that's when we
> assign the various topic keys and allow it to do the routing.
> Each logging
> application is free to log whatever "key" it wants, then we can just set up
> something to pick it up on the consuming end when we're ready.
Sure. The way that I meant catch-all from from a consumer perspective.
So say for example you have two routing keys, A and B that are
determined by the producer.
And then say you have two consumers, X and Y. X is interested in A and
Y is interesed in B.
In that case it would be trivial to set up a direct exchange and use
direct bindings for the keys A and B.
However, if you wanted to have a third consumer Z, who consumes
everything, Z would have to know every routing key that would ever be
used, when using a direct exchange.
In contrast, you get this for free with a topic exchange because you
can use a wildcard as a binding key.
Hence this is what I meant by a trade-off between efficiency (direct
exchanges) and clarity (topic exchanges).
More information about the rabbitmq-discuss