###### tags: `摳Sense` # Akka.Net分享 <br> 當應用程式要處理的需求及功能越來越多,程式間的關係也因此變得複雜,而當使用者增加的時候,應用程式也需要進行拆分及擴展,因此我們會需要一種針對高併發、分布式、需求多又細又複雜的設計方式。 [Akka.NET](https://getakka.net/) 是實作 [Actor Model(角色模型)](https://zh.wikipedia.org/wiki/%E6%BC%94%E5%91%98%E6%A8%A1%E5%9E%8B)的分散式框架,而另外一方面,角色模型亦能夠用來實現<font color=#0066CC>Reactive System(響應式系統)</font>的設計。 <br> ## **甚麼是 Actor Model(角色模型)?** [Actor Model](https://zh.wikipedia.org/wiki/%E6%BC%94%E5%91%98%E6%A8%A1%E5%9E%8B) 以 Actor 為一個基本的計算單元。Actor 只是抽象上的概念,可以被用來代表各種不同類型的目標物。Actor 以訊息來驅動它執行運算,可以依需求選擇平行運算或是串接運算。Actor 與 Actor 之間是解耦的、隔離的,Actor 之間只能透過消息來溝通。其主要特點如下: >1. 系統由 Actor 構成。 >2. Actor 之間完全獨立。 >3. 訊息傳遞是非阻塞和異步的。 >4. 所有訊息發送都是並行的。 <br> <font color=#BB3D00>Actor Model 的介紹請見</font> [Actor Model(角色模型)介紹](https://hackmd.io/dsJdHoRITJqFE8ivctxvAA) <br> ## **甚麼是 Reactive System(響應式系統)?** 程式系統應該要更加靈活、鬆耦合、可伸縮、容錯,具有更即時的反應能力。因此響應式系統的概念隨之而來,跟據 [Reactive Manifesto(響應式宣言)](https://www.reactivemanifesto.org/)有四個特性: >1. <font color=#FF0000>Responsive</font>:系統應儘可能地保持能及時回應。 >2. <font color=#FF0000>Resilient</font>:系統在發生錯誤時,仍然保持能及時回應。 >3. <font color=#FF0000>Elastic</font>:系統在各種的工作負載之下,仍然保持能及時回應。 >4. <font color=#FF0000>Message Driven</font>:系統依賴非同步的訊息驅動。  <br> ## **甚麼是 Akka?** Akka 是一個旨在建構高並行、分散式和彈性訊息驅動的 Actor Model library,[Akka.NET](https://getakka.net/) 則是以 C# 寫的 Akka 版本。Actor 是基本的運算單位,眾多 Actor 會組成 Actor System,一個 Application 可以包含多個 Actor System,整個 Application、Actor System、Actor 的關係看起來就會像這樣:  每個 Actor 都是獨立的,因此執行運算都是非同步且分散式的進行。每個 Actor 會受到監控,若有 Actor 出現例外,監控機制就會作出處理,以達到容錯的效果。此外,Actor 也可根據處理的訊息量,自動增減 Instance 的數量,讓應用程式的運算能力是有伸縮性的。 <br> ## **實作**
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up