[rabbitmq-discuss] A few questions about RabbitMQ and the .NET Client

Matthias Radestock matthias at rabbitmq.com
Fri Sep 2 08:59:07 BST 2011


Matt,
On 02/09/11 08:32, Matthew Whitfield wrote:
> With the headers exchanges - I had seen both sources of information
> you mentioned, but still didn't find it hugely useful - for example,
> if I want to specify a particular header can match any value when the
> x-match is set to 'all' - that's the sort of information I'd like to
> see. Maybe I am missing something?

Take a look at 
http://hg.rabbitmq.com/rabbitmq-java-client/file/rabbitmq_v2_6_0/test/src/com/rabbitmq/client/test/functional/Routing.java#l156 
for an example. It's in Java, but should be easy to translate into .net.

> The intermediate exchange point looks good, I will look into that.

With 'all' and 'any' you get the choice of conjunction or disjunction, 
i.e. you can express "Match all these headers" or "Match any of these 
headers"

By introducing intermediate exchanges you can express conjunctions of 
disjunctions, i.e. "Match any of these headers AND match any of these 
headers AND ...".

> With the transactions - are they really best avoided? Or are they OK
> to be used as long as we understand the consequences?

Both. If there is a reasonably straightforward way to write your app w/o 
relying on AMQP transactions, e.g. by using 'confirms', etc, then I'd 
encourage you to do so. If, OTOH, transactions really are by far the 
most convenient approach, and you understand their behaviour in AMQP and 
Rabbit, then by all means use them.

Regards,

Matthias.


More information about the rabbitmq-discuss mailing list