Akka学习笔记(三):什么是Actor

本文深入探讨了Akka框架中的Actor模型,包括Actor的基本概念、ActorReference的作用、Actor的状态与行为、邮件箱的工作原理、子Actor的管理以及监督策略等内容。同时介绍了Actor在处理消息、状态恢复和错误管理方面的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Akka学习笔记(三):什么是Actor

上一节讲到actor是actor system最基本的单元。这一节详细的讲讲actor.更详细here。actor是一个拥有state,behavior,mailbox,children,supervisor strategy的容器.Akka保证所有actor都只运行在自己的轻量级线程,并一次处理一个消息,这样程序员就不用处理同步、竞态

Actor Reference

为了防止actor对象被直接的访问和操作,所以actors通过ActorRef来间接交流。message可以通过如下方式传递:

  • ! (“tell”) - 发送message并马上返回
  • ? (“ask”) - 发送message并返回Future

详见here

State

actor拥有的一组变量,即actor的state。state是可恢复的,详见Persistence

Behavior

actor处理消息的方法吧~

Mailbox

所有收到的消息,会进入actor的mailbox队列。默认是FIFO。

Children

每一个actor,都是潜在的监控者。actor会自动监控执行子任务的actor.children被放在context中,通过context.actorof(...))或者context.stop(child))操作children.这些操作都是异步的,所以相应非常快。

Supervisor Strategy

actor一旦创建,监控策略是不可修改的。Akka自动帮我们处理错误故障。具体的错误策略详见错误的监督和监控

当Actor终止时

一旦actor意外终止,比如失败了。它会释放所有资源,将未处理的messages发送给system的dead letter mailbox.这些message将由EventStream处理。
为什么不把dead letter全部丢掉呢?dead letter主要用来debug


内容简介 本书将尝试帮助入门级、中级以及高级读者理解基本的分布式计算概念,并且展示 如何使用 Akka 来构建具备高容错性、可以横向扩展的分布式网络应用程序。Akka 是一 个强大的工具集,提供了很多选项,可以对在本地机器上处理或网络远程机器上处理的 某项工作进行抽象封装,使之对开发者不可见。本书将介绍各种概念,帮助读者理解 网络上各系统进行交互的困难之处,并介绍如何使用 Akka 提供的解决方案来解决这些 问题。 作者简介 Jason Goodwin 是一个基本上通过自学成才的开发者。他颇具企业家精神,在学校 学习商学。不过他从 15 岁起就开始学习编程,并且一直对技术保持着浓厚的兴趣。这对 他的职业生涯产生了重要的影响,从商学转向了软件开发。现在他主要从事大规模分布 式系统的开发。在业余时间,他喜欢自己原创电子音乐。 他在 mDialog 公司第一次接触到 Akka 项目。mDialog 是一家使用 Scala/Akka 的公司, 为主流出版商提供视频广告插入软件。这家公司最终被 Google 收购。他同时还是一名很 有影响力的“技术控”,将 Akka 引入加拿大一家主要的电信公司,帮助该公司为客户提 供容错性更高、响应更及时的软件。除此之 外,他还为该公司中的一些团队教授 Akka、 函数式以及并发编程等知识。 目录 第 1 章 初识 ActorAkka 工具集以及 Actor 模型的介绍。 第 2 章 Actor 与并发:响应式编程。Actor 与 Future 的使用。 第 3 章 传递消息:消息传递模式。 第 4 章 Actor 的生命周期—处理状态与错误:Actor 生命周期、监督机制、Stash/ Unstash、Become/Unbecome 以及有限自动机。 第 5 章 纵向扩展:并发编程、Router Group/Pool、Dispatcher、阻塞 I/O 的处理以 及 API。 第 6 章 横向扩展—集群化:集群、CAP 理论以及 Akka Cluster。 第 7 章 处理邮箱问题:加大邮箱负载、不同邮箱的选择、熔断机制。 第 8 章 测试与设计:行为说明、领域驱动设计以及 Akka Testkit。 第 9 章 尾声:其他 Akka 特性。下一步需要学习的知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值