如何使用pika与Python客户端连接到RabbitMQ集群?

时间:2014-05-14 09:56:41

标签: python rabbitmq cluster-computing pika

我有一个使用Pika包(0.9.13)的Python客户端,并从RabbitMQ集群中的一个节点检索数据。群集由放置在两个不同主机(url_1和url_2)中的两个节点组成。如何让我的Python客户端订阅这两个节点?

这是我的代码的主要结构:

import pika
credentials = pika.PlainCredentials(user, password)
connection = pika.BlockingConnection(pika.ConnectionParameters(host=url_1,
                                     credentials=credentials, ssl=ssl, port=port))
channel = connection.channel() 
channel.exchange_declare(exchange=exchange.name, 
                         type=exchange.type, durable=exchange.durable)

result = channel.queue_declare(queue=queue.name, exclusive=queue.exclusive, 
                             durable=queue.durable, auto_delete=queue.autoDelete)
channel.queue_bind(exchange=exchange.name, queue=queue.name, 
                   routing_key=binding_key)
channel.basic_consume(callback,
                  queue=queue.name,
                  no_ack=True)

channel.start_consuming()

1 个答案:

答案 0 :(得分:2)

如果您有一个群集,那么您所连接的节点并不重要。

通常在解决这个典型问题时,配置一个简单的负载均衡器并将客户端连接到L.B就足够了。

  

客户-----> LB ------> rabbitmq(s)实例集群。

修改

将负载均衡器设置为HAPROXY或例如http://crossroads.e-tunity.com/,它们轻巧且易于使用。

我还想补充一下:RabbitMQ Client connect to several hosts