[rabbitmq-discuss] RabbitMQ - live upgrade

Matthew Sackman matthew at rabbitmq.com
Wed Aug 11 15:11:13 BST 2010

Hi Dave,

On Wed, Aug 11, 2010 at 10:01:20AM -0400, Dave Greggory wrote:
> We have two nodes in the cluster and they can talk to each other
> directly (obviously). They're both 1.8.1 and say we want to upgrade
> them one at a time to 1.new version without affecting clients. If we
> take down 1 node out of the load balancer then clients will connect to
> the other node when they detect the connection loss. Now we can
> shutdown this first node and upgrade it.

That would work, but obviously any queues that are declared on the node
that is now down will be unavailable.

> Will we lose any of the persisted messages in the downed node due to
> the new persister and/or mnesia differences?

Yes. You will lose all persisted messages. And all declared queues,
exchanges, bindings, vhosts and users.

> when we bring up the newly upgraded node, it will attempt to cluster
> itself with the still up second node with old version? Can only very
> bad things happen in this situation?

Hmmm, I'm not sure if it will try to recluster. If it does, it'll
certainly fail. You can not cluster between rabbit with different
versions of rabbit (well, actually, you probably can sometimes, but the
outcome is undefined at best). Don't do this.

> Other than being very quick on the trigger finger and downing the
> second node as we're bringing up the first node, are there any other
> solutions?

Yes, build a new cluster, then switch your producers over to the new
cluster (where they must create new queues, exchanges etc etc). Have
your consumers continue to drain the old cluster, and then when the old
cluster is empty, switch the consumers to the new cluster.

> Or will the new version just not work without having to upgrade client
> API (java) and restsrting clients?

There is no requirement to touch your clients. The on-the-wire AMQP
protocol has not changed. There have been changes and likely
improvements to the clients but I don't believe there should be any
problems with 1.8.1 clients connecting to the next released version of
the RabbitMQ broker.


More information about the rabbitmq-discuss mailing list