[rabbitmq-discuss] producer/consumer and every n-th message

Torsten Curdt tcurdt at vafer.org
Fri Jul 8 09:05:49 BST 2011

>> That should be easy to implement I assume?
> Yes, AMQP 0.9.1 has this feature built-in. See tutorial 2:
> http://www.rabbitmq.com/getstarted.html
> and a longer example with multiple consumers in the Ruby amqp gem guide:
> http://rubydoc.info/github/ruby-amqp/amqp/master/file/docs/Queues.textile#Message_acknowledgements

Great, thanks!

>> I also assume for this scenario a direct exchange would do?
>> How bad would be the contention n and m are fairly large?
>> ...or do I just need to have enough broker?
> Sorry, what are n and m?

See above ... the number of producers and consumers.

> Message acknowledgements have very low overhead and
> redeliveries typically do not happen
> often enough to create any contention.

This is more about the fact that many producers and consumers all
share just a single queue.

> Every solution I can think of will require producers to keep track of
> message sequences.

Hm. Is this so uncommon what I am trying to do here? ...consuming only
every n-th message

Another idea could be to create a hash code per message, then use the
modulo of that as the routing key. Not ideal though. And has the
pre-condition that the hashing algorithm produces a good distribution.

One could write his own exchange I assume.
A modified Fanout would probably do the trick.
Just would like to avoid custom code in this area if possible.

> Take a look at http://www.rabbitmq.com/extensions.html#sender-selected-distribution.

Interesting. Thanks for the pointer.


More information about the rabbitmq-discuss mailing list