[rabbitmq-discuss] Federation connections, VIPs, and queues
mpietrek at skytap.com
Mon Dec 10 21:17:02 GMT 2012
I realize this is a somewhat esoteric question and apologize for the
complexity. We're still on 2.8.7 for a while, although my guess is that
federation in 3.0 won't drastically change the answer.
In our setup, we have bidirectionally federated nodes, i.e. 'slave' <->
'master' with an exchange named 'skytap'. To this mix I add a set of
alternate nodes to enable non-stopping upgrades: 'master-alternate' and
'slave-alternate'. The primary and alternate nodes are identically
I'm using VIPs (keepalive based) for connections between nodes. There's a
vip-master and a vip-slave. Most of the time vip-master points at the
'master" node, but occasionally points at the 'master-alternate" node. In
the rabbitmq.config, I specify the VIP names everywhere (i.e vip-master,
vip-alternate), and never mention the actual node names.
When I first start this up, I see a federation support queue like this:
federation: skytap -> rabbit at master
This is what I'd expect based on my understanding of federation.
However, after doing an upgrade process (i.e., vip-master goes from
'master' to 'master-alternate' and back to 'master'), I have two queues now:
federation: skytap -> rabbit at slave
federation: skytap -> rabbit at slave-alternate
This isn't so good. The vast majority of the time the slave-alternate node
isn't around. Messages sent to the skytap exchange just pile up in the
second queue. (The do of course get delivered to the non-alternate slave
I'm trying to understand this behavior. It's almost as if the federation
logic is burrowing underneath my VIP and discovering the actual node names.
In my naive understanding, I'd expect that the use of VIPs would hide away
the primary/alternate nodes.
That said, I do notice in the connections list that incoming connections
come from the 'regular' node IP, not from the VIP that's assigned to the
same node. Not sure if this is relevant or not.
In a related vein, looking at the Exchanges I see exchanges like this:
federation: skytap -> rabbit at slave A
federation: skytap -> rabbit at slave-alternate B
What do the A/B signify?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the rabbitmq-discuss