我們在我的工作場所RabbitMQ周圍有一個包裝庫,由不再在這裏工作的人創建。我正在設計一個使用Rabbit的新系統,並正在制定用於聲明隊列,交換和綁定的最佳方法。我們的Rabbit架構有一些聯邦全局區域,每個區域都有多個Rabbit節點。何時聲明/綁定隊列和交換與RabbitMQ
發佈消息和訂閱隊列的包裝代碼每次重新聲明相關的交換,隊列和綁定。我擔心的是,這可能會在每個消息發佈中引入嚴重的延遲,特別是如果需要等待遠程全局區域中存在隊列/交換的確認。我預計每秒數百萬條消息的基準不會重新宣佈每次發佈的交換。
總之,這種方法對我來說似乎有點浪費和偏執,但也許我錯過了一些東西。
所以,我有幾個問題:
- 重新申報隊列和交換一個顯著的性能損失,考慮到全球聯盟?
- 在每次使用中重新聲明一個好方法,因爲它處理由於代理重新啓動或顯式刪除而導致的隊列/交換消失?
- 我們是否應該在每個進程 中聲明隊列和交換一次並期望它們能夠持續整個生命週期?
- 是否應該在兔子配置中聲明持久交換和隊列,而不是應用程序聲明?
- 如果應用程序可能繼續使用舊配置聲明它們,應如何處理隊列/交換的配置更改?應用程序是否應該處理聲明失敗並繼續發佈/使用?
感謝您的全面回答 –