Akka构建Reactive应用《one》

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

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

    作为小白,就是这个最基础的这个,然后下载过来是个 zip 包,解压一下,执行以下命令:

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

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

    然后执行 reStart 来构建项目和运行 Hello World,可以看到以下的输出,还可以看到 Actor 和我们打的招呼。

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

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

Messages

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

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

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

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

    有什么讨论的内容,可以加我公众号:

猜你喜欢

转载自blog.csdn.net/woshiyexinjie/article/details/81328788