我們有兩個消費者用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