[rabbitmq-discuss] Federation setup query
Punit.Jain at emc.com
Mon Aug 5 18:14:37 BST 2013
Thanks a lot Simon for detailed explanation, this answers my questions precisely.
From: Simon MacMullen [mailto:simon at rabbitmq.com]
Sent: Monday, August 05, 2013 10:22 PM
To: Discussions about RabbitMQ
Cc: Jain, Punit
Subject: Re: [rabbitmq-discuss] Federation setup query
On 05/08/13 15:24, Jain, Punit wrote:
> I want to setup federation b/w two brokers called A (Downstream) and B
> (Upstream). We have redundant network link between these two brokers.
> B has two IPs, named IP1 and IP2. I have setup federation in following
> I have tested this setup and it is working fine. I have few questions
> regarding this setup:
> *Is it wise to create a single upstream with two uris? Or the above
> setup is good and will provide network high availability incase if a
> network link goes down?
I would create a single upstream with two URIs. Both configurations will provide network high availability, but if you have two upstreams you can see messages being reordered.
> *Though we have specified two upstream, but when we list exchanges and
> queues on broker B it shows only one x-federation-upstream and a
> single upstream queue
These objects are identified in the upstream broker by the name of the downstream broker - therefore if you have a single downstream connecting more than once you will have multiple federation links sharing the same queue / exchange. This is not how it's designed to work.
> and there is no duplication of messages. This is the exact behavior we
> expect, but I want to understand that how does RabbitMQ achieve this
> behavior and avoid duplication. It would be a great help if you can
> point me to some documentation or a link.
There won't be duplication since there's only one upstream queue.
However since you have two links consuming from it and publishing to the same exchange, messages can overtake each other and become reordered.
Also the links will consider themselves to each own the x-federation-upstream exchange and the upstream queue; they may tread on each others toes here. So...
> Any suggestion or advice to improve this configuration.
...you shouldn't point two upstreams to the same cluster.
More information about the rabbitmq-discuss