[rabbitmq-discuss] RabbitMQ behind a balancer and Flow Control

Simon MacMullen simon at rabbitmq.com
Thu Jan 31 10:50:56 GMT 2013


On 31/01/13 08:27, Konstantin wrote:
> considering a setup with more than 10 rabbitmq servers behind a balancer.
> Does the flow control feature still makes sense here?

Yes - flow control is there to protect individual servers from 
whatever's upstream of them, even if that's a load balancer.

> My problem is, that producers are blocked even there is another server with
> a lot of free ram which he can use. Is there a way to check from outside if
> rabbitmq will block new requests so the balancer will notice that this one
> server is not available at the moment?

Yes, you can check with rabbitmqctl or management. With rabbitmqctl, 
invoke "rabbitmqctl status" then compare the value for {memory, [{total, 
...}]} against vm_memory_limit, and disk_free against disk_free_limit. 
With management, request something like

$ curl -i -u guest:guest \
  http://localhost:15672/api/nodes?columns=name,mem_alarm,disk_free_alarm

to get the alarm statuses directly.

you can check per-connection flow control as well via ctl or mgmt, but 
you wouldn't really want to - just because one connection is rate 
limited doesn't mean others will be.

> Or can I configure this directly on
> the rabbitmq server so that the tcp port is closed if the server is "full"?

No, you can't.

Cheers, Simon

-- 
Simon MacMullen
RabbitMQ, VMware


More information about the rabbitmq-discuss mailing list