Akka相关概念理解

简介: <div style="margin:0px; padding:0px; border:0px; line-height:1.6; font-family:'Helvetica Neue',Arial,'Hiragino Sans GB',STHeiti,'Microsoft YaHei','WenQuanYi Micro Hei',SimSun,Song,sans-serif; font


Akka相关概念理解

Actor适用

Actors可以替代:

  • 一个线程
  • 一个对象或者组件
  • 一个callback或者listener
  • 一个单例或者服务
  • 一个路由转发者,负载均衡器,池
  • 一个Java EE的session bean或者事件驱动bean

创建很多的Actors:
Actors不像线程一样重,可以把它们当做轻量级的对象来看

  • 为每个请求创建一个actor?没问题
  • 为处理一个message,创建一个内部actor去处理?可以
  • Actor树应该很深,而不是很浅

不要用阻塞,否则会ties up该线程,并占有大量系统资源。
如果一定要用,在一个独立的线程池中适用阻塞api,将其隔离在actor或者future中。(ppt 49页)

ActorSystem包括

  • 配置
  • dispatcher(thread pool)
  • actors树形继承结构

Dispatcher

默认的,事件驱动的,将一组actor绑到一个线程池中,共享线程的

Mailbox

默认为akka.actor.default-mailbox(无限邮箱,java.util.concurrent.ConcurrentLinkedQueue)默认是先进先出的队列,可以自行实现优先级队列,但akka中当前behavior必须总是处理下一个出队的消息,而且没有扫描mailbox的动作,处理消息失败时,即认为failure发生了,当然这个行为可以被重写

Actor

可以理解为calble,跑在线程池上

ActorRef

这是一个 Actor 实例的句柄(handle),你可以用它来与实际的 Actor进行交互。 The ActorRef 是不可变量,与它所代表的Actor之间是一对一的关系

EventStream

携带日志消息,死信.actor可以从EventStream订阅日志或者死信

Reference

http://www.gtan.com/akka_doc/scala/dispatchers.html
http://www.slideshare.net/developerforce/df121253-patterson?next_slideshow=1


目录
相关文章
|
5月前
177 Akka详细学习资料
177 Akka详细学习资料
25 0
|
数据库
akka设计模式系列-While模式
  While模式严格来说是while循环在Akka中的合理实现。while是开发过程中经常用到的语句之一,也是绝大部分编程语言都支持的语法。但while语句是一个循环,如果循环条件没有达到会一直执行while语句体的代码,且会阻塞while语句外的代码。
1397 0
|
设计模式
akka设计模式系列-消息模型
  通过前面的文章我们总结了几个常见的actor设计模式,但此处不得不提前介绍一下在Akka中消息的设计模式。随着对Akka的使用,我们会发现,使用Akka设计系统其实就是面向消息编程。actor之间消息设计的是否合理,往往意味着Akka应用设计的是否合理。
2281 0
|
Java
akka设计模式系列-Backend模式
  上一节我们介绍了Akka使用的基本模式,简单点来说就是,发消息给actor,处理结束后返回消息。但这种模式有个缺陷,就是一旦某个消息处理的比较慢,就会阻塞后面所有消息的处理。那么有没有方法规避这种阻塞呢,这就是本章要讲的Backend模式。
1604 1
|
设计模式
akka设计模式系列-基础模式
  本文介绍akka的基本使用方法,由于属于基础功能,想不出一个很高大上的名称,此处就以基础模式命名。下文会介绍actor的使用方法,及其优劣点。 class SimpleActor(name:String) extends Actor { private def doWork(message...
2268 0
|
Java 设计模式 安全
akka设计模式系列(Actor模型)
  谈到Akka就必须介绍Actor并发模型,而谈到Actor就必须看一篇叫做《A Universal Modular Actor Formalism for Artificial Intelligence 》的论文,它最早发表于1973年,提出了一种并发计算的理论模型,Actor就源于该模型。
8171 0
|
Java 数据库 算法
《Akka应用模式:分布式应用程序设计实践指南》读书笔记9
性能   这也是一个比较大的问题,因为性能不一定是Akka本身的问题,还可能是你代码写的有问题。   优化的第一步就是找出性能的瓶颈,隔离出应用程序里面比较耗时的部分,然后尝试对其优化,减少需要耗费的时间成本。
1635 0
|
Java 存储 测试技术
|
Spring Java 负载均衡
akka笔记
Actor UntypedActor actor的基类,继承并实现onReceive方法就可以得到一个Actor。 Props 配置类,用Props.create可以创建一个按指定配置生成的Actor。
1001 0