[rabbitmq-discuss] Flow Control

Ben Hood 0x6e6562 at gmail.com
Wed Oct 22 17:40:17 BST 2008


Brian,

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.

Understood.

> 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).

HTH,

Ben




More information about the rabbitmq-discuss mailing list