簡介
Akka 是一個用 Scala 編寫的庫,用於簡化編寫容錯的、高可伸縮性的 Java 和 Scala 的 Actor 模型套用。它已經成功運用在電信行業。系統幾乎不會宕機(高可用性 99.9999999 % 一年只有 31 ms 宕機)。
Actor模型並非什麼新鮮事物,它由Carl Hewitt於上世紀70年代早期提出,目的是為了解決分散式編程中一系列的編程問題。其特點如下:
系統中的所有事物都可以扮演一個Actor
Actor之間完全獨立
在收到訊息時Actor所採取的所有動作都是並行的,在一個方法中的動作沒有明確的順序
Actor由標識和當前行為描述
Actor可能被分成原始(primitive)和非原始(non primitive)類別
非原始Actor有
由一個郵件地址表示的標識
當前行為由一組知識(acquaintances)(實例變數或本地狀態)和定義Actor在收到訊息時將採取的動作組成
訊息傳遞是非阻塞和異步的,其機制是郵件佇列(mail-queue)
所有訊息傳送都是並行的
AKKA
特性
1Simple Concurrency & Distribution單並發性&分散式
2Resilient by Design
3High Performance高效
4Elastic & Decentralized
5 Extensible可擴展