看到这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。

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

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

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

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

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

Akka构建Reactive应用《one》相关推荐

  1. 使用akka构建高并发程序_如何使用Akka Cluster创建简单的应用程序

    使用akka构建高并发程序 If you read my previous story about Scalachain, you probably noticed that it is far fr ...

  2. Akka 指南 之「调度器」

    温馨提示:Akka 中文指南的 GitHub 地址为「akka-guide」,欢迎大家Star.Fork,纠错. 文章目录 调度器 依赖 简介 默认调度器 查找调度器 为 Actor 设置调度器 调度 ...

  3. 意外的服务器响应_响应式系统reactive system初探

    初识响应式系统 第一次听到reactive这个词还是在几年前,偶然了解到了Rxjava这个项目,仿佛为我打开了一扇新的大门,Rxjava是ReactiveX的java实现,ReactiveX家族除了R ...

  4. 响应式系统reactive system初探

    文章目录 初识响应式系统 什么是响应式系统 响应式系统的四大特点 及时响应性(Responsive) 恢复性(Resilient) 有弹性(Elastic) 消息驱动(Message Driven) ...

  5. 具有Akka反应流的反应队列

    反应性流是最近宣布的一项计划,旨在在JVM上为具有内置背压的异步流处理创建标准. 该工作组由Typesafe,Red Hat,Oracle,Netflix等公司组成. 早期的实验性实现之一是基于Akk ...

  6. 使用Akka持久化——消息发送与接收

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/beliefer/article/details/53929751 前言 在<使用Akka持久化 ...

  7. 【华为云技术分享】Reactive模式优势与实践

    Reactive编程即反应式编程,随着这些年的发展已经逐步的进入了开发者的视野当中.早在2014年社区就有人发起响应式宣言,推动着Reactive的发展: 响应式宣言 Published on Sep ...

  8. Akka的Actor层级结构《seven》译

    示例简介 在写散文时,最难的部分往往是编写前几句话.在开始构建Akka系统时,有一种类似的"空白画布"的感觉.你可能想知道:哪个应该是第一个Actor?它应该住在哪里?它该怎么办? ...

  9. 干货 | Reactive模式在Trip.com消息推送平台上的实践

    作者简介 KevinTen,携程后端开发工程师,关注Reactive和RPC领域,深度参与开源社区,对Reactive技术有浓厚兴趣. Pin,携程技术专家,Apache Dubbo贡献者,关注RPC ...

最新文章

  1. 【词汇】ab-前缀、al-后缀、norm-词根
  2. vivado 验证ddr引脚_vivado下ddr3的读写和测试详解
  3. cesium进行模型高度测量的代码片段
  4. 基于zookeeper实现分布式配置中心(一)
  5. python画折线图代码实现_python如何绘制分布折线图 python绘制分布折线图代码示例...
  6. TrustedInstaller.exe in Windows Vista consumes 100% CPU
  7. 「镁客·请讲」南京布塔:用动作捕捉世界的精彩
  8. 重磅!2020 年算法工程师技术路线图
  9. php+getdomfromstring,php使用simple_html_dom解析HTML示例
  10. 【提问】iOS UIAtumator 是怎么判断元素isVisible的?
  11. iBooks 一样的翻书效果
  12. Java程序员简历书写
  13. 给我一个支点,我要撬动地球。
  14. 设置matlab关联文件,matlab2014b怎样设置文件关联
  15. python绘制箭头_python如何绘制坐标箭头?
  16. Unity3D 程序最简单的开机启动——创建快捷方式
  17. UVA1626 / ZOJ1463 Brackets sequence 区间DP
  18. 五一去哪里人最多?用 Python 抓取的热力图告诉你!
  19. 写论文需要用哪些网站,专门写论文的网站有哪些
  20. 下一代威胁感知系统的设计构想

热门文章

  1. 数据库表多维度数据的计算和汇总
  2. C#利用CDOSYS组件发邮件的一些小结
  3. transient是干嘛的
  4. BZOJ 1798 题解
  5. Mutex和内存可见性
  6. 在NHibernate的单表继承模式下通过父类Repository查询子类
  7. 【慢慢学算法】:qsort()与sort的用法(收藏)
  8. [BuildRelease]Mozilla Build Tools(自动设置VC环境)
  9. Android 自定义组件学习 3
  10. Cortex - M3 一些基础知识