【转载】actor 模型的优缺点分析介绍

简介:

      actor 模型是 1973 年就提出的一个分布式并发编程模型,在 erlang 语言中得到广泛支持和应用。目前 java中 也出现了很多支持 actor模型的库:akka、killim、jetlang等等,其中 akka 是使用 scala 写的,有 scala 和 java 两套使用接口;killim 需要对编译出来的 class 文件进行后处理。

最近项目需要架构整改,以支撑后续的发展,正在考虑是否采用 actor 模型。

先收集点资料,这两天好好分析一下。 

actor 模型参考维基百科定义(http://en.wikipedia.org/wiki/Actor_model):
actor 是一个计算实体,当其收到消息时,可以并发执行如下操作:

  • 发送有限数量的消息给其他 actor
  • 创建有限数量的新 actor
  • 指定收到下一消息时的行为

      ACE 的 reactor 模型是通过注册/回调方式进行驱动的程序开发模式,先注册自己关注什么事件,然后反应堆就会在该事件发生时回调你。这实际上与 actor 模型有些类似。reactor 在维基百科定义如下(http://en.wikipedia.org/wiki/Reactor_pattern):
      reactor 是一种设计模式,用于一到多个输入并发向一个服务处理器发送请求时进行事件处理。服务处理器将收到的请求同步分发到相应的请求处理器上。
      按照定义,所有 reactor 系统都是单线程的,但可以应用到多线程环境中。reactor 模型的特点是控制流反转(inversed flow of control)

proactor 模型可以认为是 reactor 模型的一种异步实现,reactor 要求收到请求后同步分发的请求处理器上,而 proactor 允许异步处理,定义(http://en.wikipedia.org/wiki/Proactor_pattern):
      proactor 也是事件处理的设计模式,在这种模式中,长时间运行的活动在单独的异步过程中处理,异步处理过程技术后,一个 completion handler 被调用。这个有些类似 akka actor 模型中,future 对象的 onComplete、onSuccess、onFailed 方法。
      proactor 的 ace 实现(http://www.cs.wustl.edu/~schmidt/PDF/proactor.pdf

线程为啥不好?为啥要用event代替?http://www.stanford.edu/~ouster/cgi-bin/papers/threads.pdf
scala 的好书(programming in scala)http://www.cs.uwaterloo.ca/~brecht/courses/854-Scalable-Systems-Software/Possible-Readings/scala/ProgrammingInScala.pdf


目录
相关文章
|
4月前
分层模型的优点
分层模型的优点。
59 0
|
7月前
|
算法 搜索推荐
推荐算法的优点
推荐算法的优点
54 0
Actor并发编程模型浅析
Actor 模型其实就是定义一组规则,这些规则规定了一组系统中各个模块如何交互及回应。在一个 Actor 系统中,Actor 是最小的单元模块,系统由多个 Actor 组成。每个 Actor 有两个东西,一个是 mailbox,一个是自身状态。
1861 0
|
10月前
|
分布式计算 监控 算法
Pregel模型原理
Pregel模型原理
187 0
|
机器学习/深度学习 算法
Actor-Critic:强化学习中的参与者-评价者算法简介
Actor-Critic:强化学习中的参与者-评价者算法简介
231 0
Actor-Critic:强化学习中的参与者-评价者算法简介
|
消息中间件 前端开发 Java
Actor 模型工作机制和消息机制 | 学习笔记
快速学习 Actor 模型工作机制和消息机制
386 0
Actor 模型工作机制和消息机制 | 学习笔记
|
搜索推荐 机器学习/深度学习 算法
推荐系列(五):协同过滤的优点和缺点
简单介绍协同过滤优缺点
2634 0
|
并行计算
《并行计算的编程模型》一3.7.1 选择集合参与者
本节书摘来华章计算机《并行计算的编程模型》一书中的第3章 ,第3.7.1节, [(美)帕万·巴拉吉(Pavan Balaji)编著;张云泉等译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
996 0
|
设计模式 前端开发 Java
Akka并发编程——第七节:Actor模型(六)
主要内容: 1. Typed Actor定义 2. Typed Actor创建 3. 消息发送 1. Typed Actor定义 Akka中的Typed Actor是Active Objects设计模式的实现,Active Objects模式将方法的执行和方法的调用进行解耦合,从而为程序引入并发性。Typed Actor由公用的接口和对应实现两部分构成,其后面深层次
3185 0