Akka.Net 不錯用
·2 分鐘
真的使用之後,越來越覺得 Actor Model 是個好物,因為他本來就是拿來做平行運算用的。
建議可以先從以下的幾篇文章以及 Github 的範例開始
- Akka.Net Application Architecture and Design
- Building Networked .NET Applications with Akka.Remote
- .NET Distributed Systems Architecture and Design with Akka.Cluster
好處 #
我剛開始做的時候,其實是想到 Sequence Diagram。因為 Actor Model 的重點其實就是在訊息的傳遞與處理,只是在整體架構上有一個 ActorSystem 幫忙做處理
根據以下的圖片

一個 Actor 在建立之後,AkkaDotNet 會幫你建立整個 Actor 的基本行為。 包含一個 Mailbox、預設的狀態等,而且也預設了每個 Actor 都有可以有 Children Actors 所以,當你傳遞一個訊息給 Actor 的時候,其實不是直接呼叫 Actor 中處理訊息的方法,而是先進入 Mailbox,類似郵件的方式排隊處理。
當處理有問題的時候,你是可以在 Handle 方法中,直接拋出錯誤,讓 Actor 失敗。如此一來就會觸發上層 Actor 的 SupervisorStrategy。預設的 Strategy 可以參考 Fault Tolerance 文件