On 26 January 2015 at 13:42:29, gonace (
erik.he...@obscured.se) wrote:
> I'm having a bit of a problem understanding how to use a Ruby RabbitMQ
> Driver in a RabbitMQ High Availability Cluster. I have a cluster
> of three nodes running RabbitMQ 3.4.3 and the cluster is set to
> High Availability and mirrors queues over to all nodes. If one
> or two nodes goes down for some reason the application handling
> the messaging queue should not be affected.
>
> But no driver I've seen support any form of redundancy in this
> manner, Bunny have the option ":hosts" since 1.5.0 but it only
> select one of the hosts in this options and no documentation about
> if Bunny checks if the selected host is up or not.
Bunny connects to a randomly chosen host from the list. If it loses connection
or cannot connect to begin with then another host is picked and Bunny connects to that, and so on.
> I'm searching for a way to be sure that the application handling
> the publishing and the application handling the consumption
> of these messages won't fail or loss messages if one or two nodes
> in the RabbitMQ Cluster have failed.
There is more to high availability than providing a list of hosts, see [1].
> There seems to be a good documentation about this on the RabbitMQ
> side but sparse or no documentation about this on any of the AMQP
> Drivers I've found.
Any client can connect to any node. You can stick an HAproxy in front of your cluster or provide
a list of hosts. There isn't much to add to [1] in client documentation.
1.
http://www.rabbitmq.com/reliability.html
--
MK
Staff Software Engineer, Pivotal/RabbitMQ