在編寫雲環境中的Messenger聊天機器人的上下文中,我遇到了一些併發問題。聊天機器人:確保在羣集環境中基於每個對話的消息的串行處理
具體來說,我想確保來自同一對話的傳入消息被一個接一個地處理。
作爲一個約束條件,我正在使用雲環境中的工作人員處理消息(即,工作池具有可變大小,並且工作者實例可能會短暫且可能會崩潰)。另外,低延遲很重要。
那麼抽象一點,我的要求是:
- 我收到的郵件
- 流這些消息都有一個「主題鑰匙」(會話ID)
- 集主題不知道提前和幾乎是無限的
- 我想確保同一主題的消息被串行處理
- 在潛在的短暫工作人員羣集如果可能的話,我希望可靠性保證,例如確保每條消息只處理一次。
我的問題是:
- 是否有名這種併發場景?
- 是否有技術(信息經紀人,協調服務等),它實現了開箱即用?
- 如果不是,什麼算法我可以使用在較低級別的併發工具之上實現此? (分佈式鎖,演員,隊列等)
謝謝,由ActiveMQ或HornetQ執行的消息分組正是我所需要的。 –
我冒昧地通過自己的搜索來完成您的答案。 –