Akka 2.3.8 發布,Actor 開發模型庫

jopen 9年前發布 | 6K 次閱讀 AKKA

Akka 2.3.8 發布,此版本現已提供下載,暫未有相關說明,改進內容請看 commit 列表

Akka 是一個用 Scala 編寫的庫,用于簡化編寫容錯的、高可伸縮性的 Java 和 Scala 的 Actor 模型應用。

Actor模型并非什么新鮮事物,它由Carl Hewitt于上世紀70年代早期提出,目的是為了解決分布式編程中一系列的編程問題。其特點如下:

  • 系統中的所有事物都可以扮演一個Actor

  • Actor之間完全獨立

  • 在收到消息時Actor所采取的所有動作都是并行的,在一個方法中的動作沒有明確的順序

  • Actor由標識和當前行為描述

  • Actor可能被分成原始(primitive)和非原始(non primitive)類別

  • 非原始Actor有

    • 由一個郵件地址表示的標識

    • 當前行為由一組知識(acquaintances)(實例變量或本地狀態)和定義Actor在收到消息時將采取的動作組成

    • </ul>

    • 消息傳遞是非阻塞和異步的,其機制是郵件隊列(mail-queue)

    • 所有消息發送都是并行的

    • </ul>

      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://www.oschina.net/news/57965/akka-2-3-8

       本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
       轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
       本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!