我在让Pika使用路由密钥或交换时遇到了一些问题,这与它的AMQP或RabbitMQ文档是一致的。我知道RabbitMQ文档使用了较旧版本的Pika,所以我忽略了它们的示例代码。
我要做的是定义一个队列“order”,并有两个消费者,一个负责处理交换或路由密钥“production”,另一个负责处理“test”。通过查看RabbitMQ文档,可以很容易地使用直接交换和路由密钥,或者使用主题交换。
然而,Pika似乎不知道如何处理交换和路由密钥。使用RabbitMQ管理工具检查队列,很明显Pika要么没有正确地对消息进行排队,要么RabbitMQ只是将其丢弃。
在使用者方面,我不太清楚应该如何将使用者绑定到exchange或处理路由密钥,文档也没有真正的帮助。
如果我放弃所有想法或交换和路由密钥,消息会很好地排队,并且很容易被我的消费者处理。
任何指针或示例代码的人都会很好。
事实证明,我对AMQP的理解是不完整的。
其思路如下:
客户:
获取连接后的客户端不应关心其他任何事情,而应关心exchange的名称和路由密钥。那就是我们不知道这最后会排在哪个队。
消费者
当通道打开时,我们声明交换和队列
当队列准备就绪时,在“on_queue_declared”回调是一个好地方,我们可以使用所需的路由密钥将队列绑定到exchange。
使用路由密钥“order.test.customer”发送到“order”交换的消息现在将被路由到“test”队列,在该队列中,消费者可以提取它。
相关问题 更多 >
编程相关推荐