2011-04-05 59 views
1

比方說,我有一個隊列,多個用戶正在偵聽。我在隊列中發出一個請求,其中一個消費者會處理它,並向我發送回覆。我可以不止一次在AMQP中使用相同的相關ID嗎?

現在,讓我們說我很不耐煩,如果答覆一段時間後沒有出現,我會再發一個請求。

在這種情況下,我可以重新使用相同的相關ID嗎?如果回覆不止一次,我會忽略額外的回覆。

聽起來對我來說足夠合理,但只是想仔細檢查一下,它不會搞亂AMQP。

P.S.我正在使用RabbitMQ 2.4 with rabbitmq-java-client 2.2

回答

1

我有一種感覺,能正常工作。儘管我對RpcClient類沒有做太多的工作,但我認爲這只是阻止等待相關回復消息出現在適當的回覆隊列中。因此,如果您從「客戶端」應用程序中的另一個線程觸發另一個具有相同ID的請求(導致相關答覆最終出現),則RpcClient調用將返回。

當然,代理不會在意,因爲它應該只是將相關標識作爲不透明的消息屬性傳遞。

如果您的請求可以重複發放多次直到成功,您應該注意您的請求是idempotent

相關問題