發(fā)布/訂閱 消息順序
當(dāng)使用 發(fā)布/訂閱 API 時仍律,需要決定使用同一連接的消息應(yīng)該是順序處理 還是并行處理 。
順序處理意味著你(很大程度上)不需要擔(dān)心線程安全問題嫁怀,并且這意味著你保持了事件的順序。它們會完全按照(通過隊列)接受的順序來處理,但是結(jié)果這也意味著消息會延遲彼此顿涣。
另一種選擇是 concurrent(并行) 處理。這使得工作的處理順序 沒有特定的保證 并且你的代碼完全負(fù)責(zé)確保并發(fā)的消息不應(yīng)該破壞內(nèi)部的狀態(tài)——但這樣可以顯著的更快酝豪,更加可以擴展涛碑。
如果消息間一般都不相關(guān),這種處理方式特別好孵淘。
出于安全考慮蒲障, 默認(rèn)處理方式是順序處理。但是瘫证,強烈建議你盡可能的使用并行處理揉阎。這是一個簡單的修改:
multiplexer.PreserveAsyncOrder = false;
這不是一個配置 選項,因為這樣做是否合適 完全 取決于訂閱消息的代碼背捌。
查看原文
More
作者水平有限毙籽,若有疏漏或錯誤還望提醒,十分感謝毡庆。
您可以在這里 提出問題 坑赡。