你要點的線#22是一個問題。 consumer_cancel_notify需要位於clientProperties的功能表中,而不是頂級密鑰。
clientProperties.put("consumer_cancel_notify", Boolean.valueOf(true));
AMQP 0-9-1客戶端默認不希望異步接收從代理basic.cancel 方法等,以使該 行爲,即客戶必須出示一個功能表在其 客戶的屬性,其中有一個關鍵consumer_cancel_notify和 布爾值true。有關詳細信息,請參閱能力部分 。 http://www.rabbitmq.com/extensions.html#consumer-cancel-notify
Handwaving僞爪哇(請編輯測試後,這個答案)
Map<String, Object> clientProperties = new HashMap<String, Object>();
Map<String, Object> clientCapabilities = new HashMap<String, Object>();
clientCapabilities.put("consumer_cancel_notify", Boolean.valueOf(true));
clientProperties.put("capabilities", clientCapabilities);
至於你原來的問題, 「有沒有人試圖取消處理用php-amqplib通知?」它看起來像答案是一個公司「可能」==> http://grokbase.com/t/rabbitmq/rabbitmq-discuss/11cynv8zkz/active-active-implementation-in-php
你能告訴我在哪裏指定這個選項的.NET客戶端? – Pritam
@Pritam,我沒有使用.NET,但它看起來像你將它設置爲你傳遞給'ConnectionStartOK'的'IDictionary clientProperties'的'capabilities'鍵的子字典。 https://www.rabbitmq.com/releases/rabbitmq-dotnet-client/v3.4.3/rabbitmq-dotnet-client-3.4.3-user-guide.pdf – spazm
感謝您的回覆。 @Spazm。 – Pritam