AKKA笔记

akka笔记

同scala笔记一样,也是因为那个项目中用到的akka(主要是actor和集群这两块),所以将学习过程中遇到的问题和心得零散的记录一下。如果想从头学习,看完整的教程请移步官方文档。
先介绍几个重要的网站链接:
akka 官方文档scala版 http://doc.akka.io/docs/akka/2.3.6/scala.html
akka API http://doc.akka.io/api/akka/2.3.4
akka 中文文档 http://www.gtan.com/akka_doc/
akka 中文社区(scala社区的akka板块) http://www.scala-china.net/discuz/forum.php?mod=forumdisplay&fid=44

  • Actor是Scala的并发模型,在2.10之后的版本中使用Akka作为起推荐Actor实现,从Scala2.10起,Akka 作为Scala 开发包的一部分发布,因此无需另外添加引用,可以直接在Scala 命令行使用。
  • 首先创建构建一个Akka系统(注意Akka系统消耗比较大,一个应用最好只构建一个),然后通过system.actorOf创建HelloActor的实例。
  • case class XXX 只是声明有这些消息
    这个消息会被任何extends Actor的类中的recive捕捉到,只要case捕捉到就能处理。一般都在一个文件中,不然程序不容易阅读。
  • Props是用来创建Actor的,是不可变的,因此也是线程安全的
  • Sender 是异步地将消息发送给消息的”原始发送者“。就是谁发过来,我给谁回复
  • 每个actor有且仅有一个监管者,就是创建它的那个actor.
  • 在一个系统中可能有上百万个actor,不用担心,内存一定是够用的,因为每个actor实例仅占差不多300个字节。
  • Akka与其它actor模型实现的一个重要差别在于当前的行为必须处理下一个从队列中取出的消息,Akka不会去扫描邮箱来找到下一个匹配的消息。
  • Actor引用是什么?

    Actor引用是 ActorRef 的子类,它的最重要功能是支持向它所代表的actor发送消息。每个actor通过self来访问它的标准(本地)引用,在发送给其它actor的消息中也默认包含这个引用。反过来,在消息处理过程中,actor可以通过sender来访问到当前消息的发送者的引用。

  • service.tell(msg,sender). 意思是本actor将“msg”传递给“service”这个actor

  • actorOf 创建新的actor, actorFor 查找已存在的actor
  • 使用上下文时,当前actor将成为所创建的子Actor的监管者,而使用系统创建的actor将成为顶级actor,它由系统(内部监管actor)来监管
  • context.watch(childactor) 表示将自己注册为子actor生命周期的监听者
    def receive{
    case Terminated(‘childactor’) => sender ! “finished”
    }
  • become/unbecome 来实现热插拔、状态机
  • actor1 ! Kill 杀掉actor1
  • akka.pattern.ask ask=“?”
  • pipeTo 将一个Future类型的结果当做一个消息传递给一个actorref
  • ActorSystem是重量级的对象,会创建1~n个线程,所以一个application一个ActorSystem
  • Seed Nodes,新节点启动时会发送消息到所有节点,并且发送join命令给最先回复它的那个节点。
  • Seed Nodes中配置的第一台以外机器的,要在第一台启动后才能加入集群。当然它们可以先启动,失败后会自动重复尝试。
  • ClusterSingleton 在集群中同一时刻只存在一个这样的实例。 那这个实例在哪一个节点上呢?通信时,用户直接把消息发送到PMF而不是PD(虽然PD中也有一套完整的PM)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值