Akka Actor模型開發(fā)庫是一個為Java和Scala構(gòu)建高并發(fā)、分布式和彈性消息驅(qū)動應(yīng)用程序的工具包,更輕松地構(gòu)建強大的反應(yīng)式、并發(fā)式和分布式應(yīng)用。
軟件介紹
Actor模型并非什么新鮮事物,它由Carl Hewitt于上世紀70年代早期提出,目的是為了解決分布式編程中一系列的編程問題。其特點如下:
1、系統(tǒng)中的所有事物都可以扮演一個Actor;
2、Actor之間完全獨立;
3、在收到消息時Actor所采取的所有動作都是并行的,在一個方法中的動作沒有明確的順序;
4、Actor由標識和當前行為描述;
5、Actor可能被分成原始(primitive)和非原始(non primitive)類別;
6、非原始Actor有:
由一個郵件地址表示的標;
當前行為由一組知識(acquaintances)(實例變量或本地狀態(tài))和定義Actor在收到消息時將采取的動作組成;
7、消息傳遞是非阻塞和異步的,其機制是郵件隊列(mail-queue);
8、所有消息發(fā)送都是并行的。
軟件特色
簡單的并發(fā)和分布式系統(tǒng)
Actors和Streams讓你構(gòu)建的系統(tǒng)可以擴展,更有效地使用服務(wù)器的資源,出,使用多個服務(wù)器。
彈性設(shè)計
基于 "反應(yīng)式宣言 "的原則,Akka允許你編寫系統(tǒng),使其在面對失敗時能夠自我修復(fù)并保持響應(yīng)。
高效能
在單機上最高可達到 5000 萬 msg/秒。小內(nèi)存占用;每GB堆約250萬個角色。
彈性和分散式
無單點故障的分布式系統(tǒng)??绻?jié)點的負載均衡和自適應(yīng)路由。使用集群共享的事件源和CQRS。使用CRDTs實現(xiàn)最終一致性的分布式數(shù)據(jù)。
反應(yīng)式流數(shù)據(jù)
異步非阻塞流處理與反壓。完全異步和流式HTTP服務(wù)器和客戶端為構(gòu)建微服務(wù)提供了一個很好的平臺。與Alpakka進行流式集成。