Rabbitmq 如何在Pika consumer中指定交换?
标题中的所有内容:在rabbitmq文档中的以下方法中,我们看到publish将exchange作为参数,但使用者不这样做 此外,当我在使用时,consumer中的Rabbitmq 如何在Pika consumer中指定交换?,rabbitmq,pika,Rabbitmq,Pika,标题中的所有内容:在rabbitmq文档中的以下方法中,我们看到publish将exchange作为参数,但使用者不这样做 此外,当我在使用时,consumer中的队列与publish中的路由_key相同?我认为路由密钥就像一个标签,因此订阅者可以订阅各种标签的正则表达式 要使用的代码: import pika def callback(ch, method, properties, body): print " [x] Received %r" % (body,) connection
队列
与publish中的路由_key
相同?我认为路由密钥就像一个标签,因此订阅者可以订阅各种标签的正则表达式
要使用的代码:
import pika
def callback(ch, method, properties, body):
print " [x] Received %r" % (body,)
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_consume(callback, queue='hello', no_ack=True)
channel.start_consuming()
要发布的代码:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
connection.close()
您对RabbitMQ中的工作方式感到困惑。在RabbitMQ中,您总是将消息发布到
交换机
。交换与将消息路由到队列
(或一组队列)的逻辑接收器没有区别
根据交换的类型,此路由的选择有所不同。有不同的类型:直接、扇出、主题和标题。将交换
链接到队列
的方法是使用绑定
。绑定由路由键或某些头定义,它将消息从特定的交换路由到特定的队列
因此,总而言之,您将消息发布到Exchange
。您使用队列中的消息。使用绑定
将消息从交换
路由到队列
。也就是说,没有办法说消费者从交易所消费
在您的特定情况下,您正在邮件中使用路由键“hello”。这意味着您需要从名为“”的交换
到名为“hello”的队列的绑定
,并使用与邮件相同的路由键(即“hello”)。我建议你换个名字,换个更有用的名字,看看发生了什么
希望这有帮助