akka笔记-阿里云开发者社区

开发者社区> 开发与运维> 正文

akka笔记

简介: Actor UntypedActor actor的基类,继承并实现onReceive方法就可以得到一个Actor。 Props 配置类,用Props.create可以创建一个按指定配置生成的Actor。

Actor

  • UntypedActor actor的基类,继承并实现onReceive方法就可以得到一个Actor。
  • Props 配置类,用Props.create可以创建一个按指定配置生成的Actor。
  • Props的推荐实践,创建Actor时,搞一个static的Props.create方法。可以少写不少重复代码。
  • system.actorOf 会创建顶级的actor,将被系统监控。
  • getContext().acrtorOf 会创建子actor。
  • ActorRef 由actorOf产生,可以是一个网络actor。
  • ActorRef.forward 与tell、ask的区别,性能最好的是tell,发完就走。ask是发完等Future,要等的话性能是个问题。forward用于从一个actor转 发消息给另一个actor,原始的sender信息会被保留,在>做路由、负载均衡、备份时非常有用。ask会拦住reply消息直接给 onsuccess等,sender不会再得到reply。
  • Inbox 当actor不能满足需要时,可以使用inbox,比如收多个回复,watch其他actor的生命周期。

spring集成

  • 实现SpringExtProvider在spring context中去寻找actor class,实现akka.actor.Extension和akka.actor.IndirectActorProducer。
  • system.actorOf(SpringExtProvider.get(system).props(“CountingActor”), “counter”);即可取到bean为CountingActor的class。

else

  • PoisonPill 这毒药,给哪个actor一发就挂。myActor.tell(akka.actor.PoisonPill.getInstance(), sender);
  • TypedActor 是比较好的连接actor系统与非actor内容的东东。
  • mailbox 每个actor的消息存放处,默认为 java.util.concurrent.ConcurrentLinkedQueue,akka.dispatch.SingleConsumerOnlyUnboundedMailbox 为更高效的一个box,但不能用在BalancingDispatcher时。还可以自已定义mailbox的细节。
  • UntypedProcessor 继承它可得到一个processor。用来做persistence用的。
  • SupervisorStrategy 定义出错处理。
  • routing 定义路由选择机制。cluster中使用。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章