<p>We are going to be developing a client which subscribes to an AMQP channel, but the client is going to be clustered (in Kubernetes) and we want only one of the clustered client to process the subscribed message.</p>

<p>For example, if we have a replica set of 3, we only want one to get the message, not all 3.</p>

<p>In JMS 2.0 this is possible using the shared consumers: <a href="https://www.oracle.com/technical-resources/articles/java/jms2messaging.html" rel="nofollow noreferrer">https://www.oracle.com/technical-resources/articles/java/jms2messaging.html</a></p>

<pre><code>1 message is sent to RabbitMQ Channel 1:

Consumer 1 (with 3 replicas) &lt;----- RabbitMQ Channel 1
Consumer 2 (with 3 replicas) &lt;----- RabbitMQ Channel 1

Only 2 messages would be processed 
</code></pre>

<p>Is something similar possible with AMQP? The client will be developed either in C# or MuleSoft.</p>

<p>Cheers,
Steve</p>

<p>AMQP is designed for this. If you have three clients consuming from the <em>same queue</em>, RabbitMQ will round-robin delivery of messages to them. You may also be interested in the <a href="https://www.rabbitmq.com/consumers.html#single-active-consumer" rel="nofollow noreferrer">Single Active Consumer</a> feature.</p>

<hr>

<p><sub><b>NOTE:</b> the RabbitMQ team monitors the <code>rabbitmq-users</code> <a href="https://groups.google.com/forum/#!forum/rabbitmq-users" rel="nofollow noreferrer">mailing list</a> and only sometimes answers questions on StackOverflow.</sub></p>
