2010-04-07 30 views
8

我目前正在評估消息隊列系統,而RabbitMq似乎是一個很好的候選人,所以我正在進一步研究它。RabbitMq是否從交換機到隊列循環?

爲了給出一個小小的上下文,我正在尋找一種類似交換負載平衡的消息發佈到多個隊列。我不想複製這些消息,所以扇出交換不是一種選擇。

另外我之所以想要有多個隊列vs一個隊列來處理消費者的循環,是因爲我不希望我們的單點故障處於隊列級別。

聽起來像我可以在發佈端添加一些邏輯來通過編輯路由鍵並具有適當的綁定來模擬該行爲。但這是一種被動的方法,它不會考慮每個隊列中消息消耗的速度,如果該隊列的消費者應用程序已經死亡,則可能導致填充一個隊列。

我正在尋找一個更主動的方式從交換實體方面,這將決定根據每個隊列大小或性質的某些事情發送下一個消息的位置。

我閱讀了關於Alice和可用的RESTful API,但這似乎是一種實施快速路由決策的重型解決方案。

任何人都知道如果交換隊列之間的循環是可行的w/RabbitMQ呢?謝謝。

+0

一旦我們在生產中測試了一個單一的隊列,我們​​就抨擊了一個規模問題。單個隊列是單線程的。它跟不上我們的負荷。我們正在尋找最佳實踐,以循環法分發工作 – 2013-10-14 15:37:04

回答

4

在AMQP模型中交換通常是無狀態的,儘管現在已經有了一些有狀態交換的實驗,現在有一個管理RabbitMQ插件的系統和提供新的實驗交換類型。

沒有什麼能夠完成你想要的,我不認爲,儘管我不完全確定我理解這個要求。除了單點故障點之外,還有一個單獨的隊列讓工作人員讀取它解決你的問題?如果是這樣,那麼你的問題就減少到配置HA配置中的RabbitMQ,允許你使用該解決方案。有幾種方法可以做到這一點:或者使用HALinux和共享存儲來獲得主動/被動HA的快速故障轉移,或者在客戶端上設置多個並行代理和重複數據刪除,可能使用redis或類似的方法。

我建議在rabbitmq-discuss郵件列表上再次提出您的問題,在郵件列表中有更多人可以提供建議,以及討論可以存檔爲後代。

+0

感謝您的幫助。目前這是一個很好的工作,因爲我只處於評估階段。 – Lancelot 2010-04-14 16:45:20

相關問題