歡迎使用 Akka,Akka 是一套被用來在在多處理器核心和網絡之間被設計可擴展和具備相關彈性的開源工具集。Akka 容許你更加關注商業需求而不是書寫低級別的代碼來提供可靠性,容錯率和高性能。react
不少經常使用的設計實踐和已經接受的程序模型不能解決一些重要的挑戰,這些挑戰一般是現代計算機體系結構中固有的。爲了讓項目取得成功,分佈式系統必須可以應付一些環境出現的問題,例如組件崩潰不能響應,發送的消息沒有痕跡的就丟失了,爲了讓分佈式系統可以成功的運行,以及網絡延遲和波動等問題。這些問題在具備很好管理和監控環境下的數據中心常常會發生,針對虛擬架構環境就更加容易出現上面的這些問題了。數據庫
爲了幫助你處理上面提到這些現實的問題,Akka 提供了:
Reactive System. A reactive system is a system that responds (reacts) to external events。編程
反應系統是一個能對外部事件作出相應反應的系統。早期所謂的reactive system是軟件系統的一個分支,意思正如它的名字所描述的。後來這個概念被美國的David Harel明確下來,其最主要部分是描述反應行爲。網絡
什麼是反應行爲呢?下面看一個轉換系統的例子 輸入(開始)->軟件系統(通過一段時間後中止運行)->(而後)輸出 例子中用戶把數據輸入給計算機,軟件對這些數據通過一段時間的計算,最後給出輸出結果,咱們能夠看做一個會計的月結算或者一個測量的統計數據。
可以得知,輸入數據通過特定的規則被轉換,而且在結束計算過程之後給出結果。而reactive system卻與此相反。多線程
與轉換系統相反,在reactive system裏每每沒有明確的時序安排。整體來說,reactive system表示的是不限制運行時間的系統,這其中要和外部環境相互做用,也就是在外部刺激上的反應(reactive),例如和不一樣使用者或者外部的硬件等,可是也包括內部發生的交流行爲,由於reactive system是被集成在並行運行的分佈式系統的規則中的。架構
例如,一個計算機的操做系統是這樣一個reactive system,它不會中止運行,而老是反應用戶給的輸入,而且計算機中的各個組件之間要進行交流。併發
在電信領域,生產控制或者在硬件環境的構造(嵌入式系統)中還存在不少這樣的例子。在信息系統中,也就是基於數據庫的應用系統中也要用到 reactive system。在給一個典型的例子就是警報系統(Early Warning System).分佈式
Akka 使用 actor 抽象模型可以讓 Akka 更加容易的建立正確的併發,並行的分佈式系統。actor 模型貫穿整個 Akka 的庫,可以讓你更加容易的理解和使用它們,而且可以保證更好的完整性。所以 Akka 提供了一個深度的整合和集成,若是你沒法經過選擇庫來解決個別問題的時候,你能夠嘗試將這些整合在一塊兒。工具
經過學習 Akka 和如何使用 actor 模型,你將訪問到龐大和深刻的工具集用來解決分佈式並行系統中遇到的困難和挑戰,經過統一的編程模型,其中全部的東西都可以緊密和高效的組合在了一塊兒。性能