[rabbitmq-discuss] Performance Hit when using Federation

Eric Cozzi n16483 at cray.com
Wed Jan 30 18:18:28 GMT 2013

Wouldn't republishing more so affect latency, not throughput? I'd expect 
that the federated brokers should be able to republish the messages 
nearly as quickly as they received them. Sure there is going to be 
processing time to perform the network read, queue and re-send the 
message, but that shouldn't affect 'how many' messages a federated 
broker can send in a second?

One of the use cases that we're look at is being able to make an RPC 
call where the client and server are potentially on disparate, 
non-routable networks. Essentially, there would only be a few gateway 
nodes that would span both networks. We're looking at installing 
RabbitMQ on these gateway nodes, and at other key points in our system. 
Thus, we need to be able to support RPC across several intermediate 
RabbitMQ brokers. Federation seemed a natural fit, but is there 
another/better option? The shovel plugin doesn't look to me like it 
would easily fill our need, if I'm not mistaken.

As for having a mode where federation optimized speed over reliability, 
that might be interesting to us.


On 01/30/2013 11:59 AM, Simon MacMullen wrote:
> On 30/01/13 17:26, Eric Cozzi wrote:
>> Hello all,
>> I am investigating RabbitMQ for a project where we would need to
>> federate multiple brokers. From my testing, I'm seeing acceptable
>> throughput results as long as the server and client are bot talking to
>> the same RabbitMQ server instance. However, as soon as I have the Server
>> and Client talking to different servers using a federated exchange, I'm
>> only seeing 1/4 of the throughput. Is this expected?
> Well, federation does require that the message be published on the 
> source broker, consumed and republished by the federation plugin and 
> finally consumed for real. So I would expect 1/2 the throughput for a 
> simple Producer -> Broker A -> Broker B -> Consumer case.
> Where federation *helps* throughput is when most of your messages can 
> be local. Ultimately if every message has to go everywhere, you have a 
> scaling problem anyway :-)
> However, I wouldn't expect 1/4 the throughput... except that 
> federation does transfer messages using confirms and acks. If your 
> publishers and consumers are *not* using confirms / acks then they 
> could go faster enough that the federation step in the middle would be 
> that much more expensive. Does that sound like what might be happening?
> And would anyone be interested in an optional mode for federation to 
> disable confirms and acks, going faster at the expense of guaranteed 
> delivery?
> Cheers, Simon

More information about the rabbitmq-discuss mailing list