參考https://developer.lightbend.com/guides/akka-quickstart-java
? ?(只把最重要的部分記錄下來)
?akka是什么?
? ?akka 是一個基于JVM的用于構(gòu)建高并發(fā),分布式,具有容錯性的事件驅(qū)動應用的工具和runtime。
? ?Actors是akka的基本運行單元。
下載例子
? 1 從?Lightbend Tech Hub?下載zip包
?2 解壓
運行
? ?mvn compile exec:exec
上述例子如何工作的
main函數(shù)先創(chuàng)建了akka.actor.ActorSystem,它是Actors運行的容器。然后它創(chuàng)建了三個?Greeter Actor實例和一個Printer Actor實例。
例子中,發(fā)送消息給Greeter Actor實例,它在內(nèi)部存儲消息,最終解析消息,傳送給 Printer Actor,?Printer Actor會打印出來結(jié)果。
Actor Model的優(yōu)點
事件驅(qū)動模式--Actors的工作是響應消息。Actors之間的交流都是異步的,允許Actors發(fā)送消息,繼續(xù)他們自己的工作,不會阻塞。
強獨立原則----不像java中的對象,一個Actor沒有公共的API你可以調(diào)用的。作為替代品,公共的API是通過Actor處理的消息傳遞的。這樣避免了Actors之間狀態(tài)共享,唯一的辦法查看其他Actor的方法就是發(fā)送消息給他。
位置透明原則-----系統(tǒng)是通過工廠類的方法創(chuàng)建Actors的,并且返回了Actors的引用。位置不重要,Actor可以開始,停止,移動,重啟,批量啟動和關(guān)閉,從錯誤中恢復。
輕量級----每個實例幾百比特,一個應用可以有幾百萬個實例。