如果我使用php的amqp類在交換類型設置爲direct
並且唯一指定的選項是durable
創建rabbitmq中的交換,那麼嘗試連接到node.js中的交換,我會得到一個Cannot redeclare exchange with different options error
,如果您是選項不匹配。RabbitMQ:`rabbitmqctl list_exchanges`下的'direct'標題是什麼意思?
但是,據我所知,我使用完全相同的選項(鍵入直接和選項持久)。所以,我做了一個測試,並創造了一個PHP的交流稱爲node.js中稱爲node_exchange
php_exchange
和一個跑rabbitmqctl list_exchanges
並得到了一些有趣的輸出:
Listing exchanges ...
node_exchange direct
amq.headers headers
amq.direct direct
amq.match headers
amq.fanout fanout
direct
php_exchange direct
amq.topic topic
...done.
什麼是direct
標題在這種情況下意味着(顯然這不是所有類型的直接交換,因爲它將node_exchange列爲直接類型)?我怎樣才能讓node.js創建一個相同的amqp交換(以便它在連接到持久交換時不會失敗)?
我使用的PECL PHP AMQP庫和節點AMQP庫(https://github.com/ry/node-amqp)
感謝。
編輯:
這裏是(爲簡潔,刪除與其他交易所)的rabbitmqctl list_exchanges name type auto_delete internal arguments
輸出:
Listing exchanges ...
node_exchange direct false false []
php_exchange direct false false []
...done.
謝謝你回答我的問題。我編輯了原始文件以包含您提到的命令。管理插件會指出其他可能的差異嗎?謝謝。 – 2011-04-09 21:28:48