Akka学习笔记(二):Actor Systems


图中表示的是一个Actor System,它显示了在这个Actor System中最重要实体之间的关系。

什么是actor,是一个封装了状态和行为的对象,每个actor都通过message交流,从自己的mailbox中读取别的actor发送的消息。

层次结构

假设有一个actor,它的一个功能过于复杂,为了降低复杂度,可以将这个功能划分成多个更小粒度的,更易管理的子任务,启动新的child actors,监控它们任务运行(关于监控,详见here)。每一个actor的创建者,也是其监控者。

设计一个actor system,我们要正确规划,哪一个actor负责监控,监控什么。几点建议如下:

  • 负责分发工作的actor,管理接受任务的actor,因为包工头知道所有任务出错了该怎么解决 :)
  • 拥有重要数据的actor,找出所有可能丢失该数据的子actor,监控,并处理它们的错误。类似Erlang的Error Kernel Pattern。(这段看不太明白)
  • 如果一个actor需要其他的actor传递其需求或职责,必将监控之。它应该查看其他actor的存活状态,已经是否完成完成任务,当然这不是监控范畴了,不涉及到监控策略

以上仅做参考 -..-,总有例外

Actor Path

可以认为Actor Path是通过字符串对Actor层级关系进行组合用以标识唯一Actor的一种方式。我们在创建Actor Path时,不用创建Actor;但如果没有创建对应的Actor,则不能创建Actor Reference。还可以创建一个Actor,再终止它,然后再以相同的Actor Path再创建一个新的Actor。新创建的Actor是Actor的新化身(Incarnation),但与旧的Actor并不是同一个。对于这个新化身而言,持有旧Actor的Actor Reference并不是有效的。消息发送给旧的Actor Reference,但不会被传递给新化身,即使它们具有相同的路径。

Actor Path包含协议、位置和actor的层级。如下是一些Actor Path的实例:

。。。

http://blog.csdn.net/wsscy2004/article/details/38233139

最新文章

  1. 设置 iOS 应用的图标和名称
  2. php中的可变函数和匿名函数
  3. Software Engineering: 1. Introduction
  4. 奇葩问题之ToolBar返回键失效
  5. Struts2原理
  6. 【linux】常见的网络管理命令
  7. 企业应用架构模式阅读笔记 - Martin Fowler
  8. java web-----servelet
  9. NYOJ130 同样的雪花 【Hash】
  10. VB6.0 String 用法总结
  11. 九、cocos2dx之Actions
  12. 去掉Enter字符(\r)的几个方法
  13. Android MediaScanner 详尽分析
  14. Oracle数据库语言修改成UTF-8
  15. redis主从架构,分片集群详解
  16. zookeeper客户端操作
  17. elasticsearch学习笔记——安装,初步使用
  18. Android开发之将拍摄的图片传至服务器
  19. Web终端SSH功能
  20. en_o out1

热门文章

  1. SCU 4441 Necklace
  2. python爬取人民币汇率中间价
  3. Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具
  4. 前缀和:CodeForces 932B Recursive Queries
  5. BZOJ1004 HNOI Cards
  6. Map之类的东西
  7. bzoj1004 purfer 序列
  8. SQL的in的参数化查询
  9. VK Cup 2015 - Round 1 E. Rooks and Rectangles 线段树 定点修改,区间最小值
  10. 【原】【Git】EGit强制覆盖本地文件