我有以下結構: ArchitectureAMQP/RabbitMQ的 - 如何避免競爭條件
- 有輸入源的固定數量。每個輸入源都是等效的。
- AMQP經紀人。我在使用RabbitMQ。
- 目前,有2個消費者。同樣,每個消費者都是相同的。
輸入源正在發送要處理的命令。這些命令由經紀人轉發,並由兩位消費者中的一位提取。
我需要以下行爲:
- 如果一個輸入源發送多個命令,所有命令必須被順序地處理。也就是說,在2個命令的示例中,當消費者2同時處理命令2時,消費者1正在處理命令1的是不允許。
- 但是,可以同時處理源自兩個不同輸入源的兩個命令。
是否可以用AMQP/RabbitMQ強制執行此行爲?
我不太確定這是否解決了我的問題。這可以防止消費者同時收到多條消息。然而,我可能在這裏是錯的,這並不妨礙另一位消費者收到來自第一位消費者目前正在處理的來自同一輸入源的消息? – TheRabbitHopper
這取決於你作爲'broker'的意思,你把所有的信息放在同一個隊列中嗎? – Gabriele
所有消息放在同一隊列中。我應該爲每個輸入源創建一個隊列嗎?這意味着每個消費者都在傾聽所有隊列? – TheRabbitHopper