Actor模型開發庫 Akka 1.2 發布
Akka 1.2 發布了,高版本包含很多改進,主要是為了將要發布的 2.0 開辟道路,詳細改進條目請看這里。
Akka 是一個用 Scala 編寫的庫,用于簡化編寫容錯的、高可伸縮性的 Java 和 Scala 的 Actor 模型應用。
Actor模型并非什么新鮮事物,它由Carl Hewitt于上世紀70年代早期提出,目的是為了解決分布式編程中一系列的編程問題。其特點如下:
- 系統中的所有事物都可以扮演一個Actor
- Actor之間完全獨立
- 在收到消息時Actor所采取的所有動作都是并行的,在一個方法中的動作沒有明確的順序
- Actor由標識和當前行為描述
- Actor可能被分成原始(primitive)和非原始(non primitive)類別
- 非原始Actor有
- 由一個郵件地址表示的標識
- 當前行為由一組知識(acquaintances)(實例變量或本地狀態)和定義Actor在收到消息時將采取的動作組成
- 消息傳遞是非阻塞和異步的,其機制是郵件隊列(mail-queue)
- 所有消息發送都是并行的
Java代碼:
// server code class HelloWorldActor extends UntypedActor { public void onReceive(Object msg) { getContext().reply(msg + " World"); } } remote().start("localhost", 9999).register( "hello-service", actorOf(HelloWorldActor.class)); // client code ActorRef actor = remote().actorFor( "hello-service", "localhost", 9999); Object res = actor.sendRequestReply("Hello");Scala 代碼:
// server code class HelloWorldActor extends Actor { def receive = { case msg => self reply (msg + " World") } } remote.start("localhost", 9999).register( "hello-service", actorOf[HelloWorldActor]) // client code val actor = remote.actorFor( "hello-service", "localhost", 9999) val result = actor !! "Hello"項目地址: http://akka.io/
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!