0
我正在創建一個工作隊列設置,其中不同的工作者/消費者具有不同的功能。我的意思是,並非所有的工作都可以由所有的工作人員來運作。RabbitMQ用於使用具有不同功能的消費者的工作隊列
比方說,我有以下人員:
Worker A
Capability 1
Capability 2
Capability 3
Worker B
Capability 1
Worker C
Capability 1
Capability 3
- 如果作業需要
Capability 1
,它可以通過任何工人運行。 - 如果工作需要
Capability 1
和Capability 2
,它只能運行Worker A
。 - 如果作業需要
Capability 1
和Capability 3
它可以通過Worker A
或Worker C
- 等上運行...
問題
RabbitMQ的是能夠/適合調度工作對於這樣一個設置?
謝謝。但是,有一件事可能有一個以上的要求。這是否意味着我必須爲每個需求組合創建隊列?這對我來說不是一種選擇,我擔心,因爲單個條件的數量大於20,因此所有的組合都會是非常多的隊列...... – anorm
在這種情況下,需要更復雜的交換。像Topic/Headers Ex這樣的東西非常合適。通過Topic EX,您將不得不使用Routing Key層次結構進行創意,並查看是否可以過濾消息以適應您的需求。如果沒有真正的消息層次結構,那麼使用頭信息交換,您可以在其中設置多個頭,並根據您的需要告訴兔匹配ANY/ALL。作爲一個方面說明,如果你不能在第一級實現過濾,你可能需要創建一個交換層次結構並將它們分離到下游某處。提示:Ex - > Ex綁定是允許的。 –