Akka构建Reactive应用《one》

    看到这Akka的官网,描述使用java或者scala构建响应式,并发和分布式应用更加简单,听着很高级的样子,下面的小字写着消息驱动,可是在quickstart里面又写容错事件驱动,就是这么钻牛角尖。java

    Actors是的Akka的执行单位,Actor模型是一个抽象概念,它使得编写并发的、并行的和分布式的系统变得更加容易。官方给了一个 “helloworld” 示例,演示了基本知识,咱们能够在以下的页面建立一个项目,点开旁边的 show all akka projects 能够看到全部的示例(https://developer.lightbend.com/start/?group=akka)。windows

    做为小白,就是这个最基础的这个,而后下载过来是个 zip 包,解压一下,执行如下命令:并发

$ chmod u+x ./sbt
 $ chmod u+x ./sbt-dist/bin/sbt

      而后在这个目录中,咱们执行 ./sbt 或者 sbt.bat(windows 环境)来下载项目依赖的包,不过真的是够慢的哈。异步

    而后执行 reStart 来构建项目和运行 Hello World,能够看到如下的输出,还能够看到 Actor 和咱们打的招呼。分布式

    在 akka 的 quickstart 里面还给咱们画了一张图,看怎么运行的ui

    main 类里面建立一个 akka.actor.ActorSystem,构建 Actors 运行的容器,建立了三个Greeter Actor 和一个Printer Actor。scala

Messages

    该示例将消息发送到GreeterActor实例,这些实例在内部存储这些消息。最后,给Greeter Actor的指令消息会触发它们向PrinterActor发送消息,PrinterActor会将它们输出到控制台:code

    Akka使用Actor和异步消息传递带来了一系列好处,Akka的如下特性容许您以直观的方式解决困难的并发性和可伸缩性挑战,举几个例子。对象

  • 事件驱动模型-Actors 执行响应消息的工做。Actors之间的通讯是异步的,容许Actors发送消息并继续本身的工做,而不阻塞等待答复。
  • 强隔离原则-与Scala中的常规对象不一样,Actor在能够调用的方法方面没有公共API。相反,它的公共API是经过参与者处理的消息定义的。这能够防止参与者之间共享状态;观察另外一个参与者状态的惟一方法是向其发送请求它的消息。
  • 位置透明性-系统从工厂构造Actor并返回对实例的引用。因为位置并不重要,Actor实例能够启动、中止、移动和从新启动,以便向上和向下扩展,并从意外故障中恢复。
  • 轻量级-每一个实例只消耗几百字节,这实际上容许数百万并发Actor存在于一个应用程序中。

    好戏再续:看看在HelloWorld示例的上下文中使用Actor和Message的一些最佳实践。blog

 

    有什么讨论的内容,能够加我公众号:

相关文章
相关标签/搜索