IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    java中使用akka手记四 用法速查

    五四陈科学院发表于 2014-04-18 15:37:25
    love 0

    以下内容由[五四陈科学院]提供

    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中使用。

    想快点找到作者也可以到Twitter上留言: @54chen
    或者你懒得带梯子上墙,请到新浪微博:@54chen


沪ICP备19023445号-2号
友情链接