歡迎使用 Akka,Akka 是一套被用來在在多處理器核心和網絡之間被設計可擴充和具有相關彈性的開源工具集。Akka 允許你更加關注商業需求而不是書寫低級别的代碼來提供可靠性,容錯率和高性能。
很多常用的設計實踐和已經接受的程式模型不能解決一些重要的挑戰,這些挑戰通常是現代計算機體系結構中固有的。為了讓項目取得成功,分布式系統必須能夠應付一些環境出現的問題,例如元件崩潰不能響應,發送的消息沒有痕迹的就丢失了,為了讓分布式系統能夠成功的運作,以及網絡延遲和波動等問題。這些問題在具有很好管理和監控環境下的資料中心經常會發生,針對虛拟架構環境就更加容易出現上面的這些問題了。
為了幫助你處理上面提到這些現實的問題,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 模型,你将通路到龐大和深入的工具集用來解決分布式并行系統中遇到的困難和挑戰,通過統一的程式設計模型,其中所有的東西都能夠緊密和高效的組合在了一起。
https://www.cwiki.us/display/AkkaZH/Introduction+to+Akka