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