Menu Search

2.14. Cluster Failover

The messaging broker can be run in clustering mode, which provides high reliability through replicating state between brokers in the cluster. If one broker in a cluster fails, clients can choose another broker in the cluster and continue their work. Each broker in the cluster also advertises the addresses of all known brokers [11] . A client can use this information to dynamically keep the list of reconnection urls up to date.

In C++, the FailoverUpdates class provides this functionality:

Example 2.19. Tracking cluster membership

In C++:

	#include <qpid/messaging/FailoverUpdates.h>
	...
	Connection connection("localhost:5672");
	connection.setOption("reconnect", true);
	try {
	connection.open();
	std::auto_ptr<FailoverUpdates> updates(new FailoverUpdates(connection));
	
	

In python:

	import qpid.messaging.util
	...
	connection = Connection("localhost:5672")
	connection.reconnect = True
	try:
	connection.open()
	auto_fetch_reconnect_urls(connection)
	
	

In .NET C#:

	  using Org.Apache.Qpid.Messaging;
	  ...
	  connection = new Connection("localhost:5672");
	  connection.SetOption("reconnect", true);
	  try {
	  connection.Open();
	  FailoverUpdates failover = new FailoverUpdates(connection);

	



[11] This is done via the amq.failover exchange in AMQP 0-10