我们有两个消费者用c1(在php中)绑定交换1,队列1和路由密钥1;和c2(在java中)交换1,队列1和路由密钥2.即仅路由密钥不同,但交换和队列相同。rabbitmq消费者获取不同路由密钥的消息
在PHP,我们结合为下列情况
$channel->queue_bind($this->queue, $this->exchange, $this->routing1);
在Java中,以下
channel.queueBind(queue, exchange, routing2);
现在,当我们发布使用路由键2的消息意味着C2,我们观察到,消息以循环方式由c1和c2接收,而不是仅由c2接收。
C1和C2的发件人都在PHP中,与发件人C1具有下列功能
$channel->basic_publish($message, $this->exchange, $this->routing1);
和发件人为C2并以下
$channel->basic_publish($message, $this->exchange, $this->routing2);
的我们有正确的假设?代码有什么问题吗?
[Edit1]作为实验,我们更改为绑定到两个消费者和发布者的单独队列。我们观察到c2(c2和r2)的消息已经被c2和c1接收了......这里有些事情是错误的。
感谢您的明确解释! – bcbishop