[rabbitmq-discuss] RabbitMQ cluster w/ .Net client

Jerry Kuch jerryk at vmware.com
Thu May 26 18:05:18 BST 2011

Hi, Yann...

Yes, your understanding is correct.  Worrying about what particular Rabbit node a given queue "really" lives on is really only of concern when nodes fail.

Best regards,

----- Original Message -----
From: "Yann Luppo" <yluppo at leads360.com>
To: rabbitmq-discuss at lists.rabbitmq.com
Sent: Thursday, May 26, 2011 9:57:38 AM
Subject: Re: [rabbitmq-discuss] RabbitMQ cluster w/ .Net client

To follow up on the clustering question, is it safe to assume the
following scenario would work as expected?

* 2 rabbitMQ nodes clustered, rabbit1 and rabbit2
* Client A connects to rabbit1, creates a new queue QueueX and pushes
messages at regular interval to that queue
* Client B connects to rabbit2 to consume messages from QueueX. Since
servers are clustered rabbit2 knows how to route the messages from
QueueX on rabbit1 to Client B.
* Client C connects to rabbit2 and pushes messages to QueueX and again
rabbit2 knows how to route the messages to QueueX.

Here is my understanding and I'd like it corrected if it's wrong in
anyway please: 

QueueX really only exists on the server it's been created but other
rabbitmq nodes on that cluster know how to communicate to and from that

Is that an accurate picture of rabbitmq clustering?

Thank you,

-----Original Message-----
From: rabbitmq-discuss-bounces at lists.rabbitmq.com
[mailto:rabbitmq-discuss-bounces at lists.rabbitmq.com] On Behalf Of Simon
Sent: Wednesday, May 25, 2011 6:14 AM
To: rabbitmq-discuss at lists.rabbitmq.com
Subject: Re: [rabbitmq-discuss] RabbitMQ cluster w/ .Net client

On 23/05/11 20:15, Yann Luppo wrote:
> Hi,
> I've read many posts and blogs at this point and I'm still not sure
> about how to cluster correctly my 2 RabbitMQ nodes.
> I've read the RabbitMQ clustering
> guide:http://www.rabbitmq.com/clustering.html
> I found out about a mysterious ClusterId in the API guide, with no
> explanation on how to get that Id in the first

The ClusterId is not documented because it doesn't do anything in 
RabbitMQ. In fact it was never well defined and was deprecated in 0-9-1.

I'm not sure what it's still doing in that guide; I've filed a bug.

> Learned in that StackOverflow post that basically I'd need my clients
> be aware of each node in the cluster and code for failover
> scenario:rabbitmq HA cluster
> <http://stackoverflow.com/questions/4140653/rabbitmq-ha-cluster>
> Now... The behavior I'd like to have is something a little more
> transparent if possible. Where I would potentially use that
> on the client to make the consumer cluster aware and then hopefully
> library knows to randomly connect to either node to grab messages.
> Granted I know a message can only be on one server at a time, so I'm
> hoping for some round robin magic from the DotNet client library that
> would also handle fail over situations.

I'm afraid that all the client libraries just know how to connect to the

host you give them.

> Basically I was hoping for the whole thing to scale without changing
> code or configuration on the publisher or consumer apps.
> Now based on my readings it doesn't quite work like that... unless I
> missed something. If my knowledge is up to date and I have to code all
> that cluster aware business, then... why does RabbitMQ have a cluster
> feature in the first place? How is it used?

Clustering exists to:

* Allow you to get higher throughput than a single node can manage.

* In the near future, allow queues to exist on more than one node, and 
survive node failure.

Cheers, Simon

Simon MacMullen
Staff Engineer, RabbitMQ
SpringSource, a division of VMware

rabbitmq-discuss mailing list
rabbitmq-discuss at lists.rabbitmq.com
rabbitmq-discuss mailing list
rabbitmq-discuss at lists.rabbitmq.com

More information about the rabbitmq-discuss mailing list