上一节讲到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
http://blog.csdn.net/wsscy2004/article/details/38233175
相关推荐
- Akka框架在Scala中提供了Actor模型,用于构建并发和分布式系统。 - Actors是轻量级的并发实体,通过消息传递进行通信,确保线程安全。 9. **类型类**: - 类型类是一种设计模式,通过隐式参数实现,使得类型...
5. Akka框架:Akka是用Scala编写的开源框架,用于构建高度可扩展、容错的应用程序,它充分利用了Scala的Actor模型。 6. Scala与Java互操作:由于Scala是运行在JVM上的,所以可以直接使用Java库,与Java代码无缝集成...
13. Akka框架:利用Actor模型实现并发,每个Actor有自己的状态和邮箱,通过消息传递进行通信。 八、Scala与其他Java技术的交互 14. 兼容性:Scala可以直接调用Java代码,反之亦然,无缝对接Java生态系统。 九、元...
Akka框架是Scala生态系统中的重要组件,提供了一套基于actor模型的并发解决方案。 8. Scala与Java的互操作性:Scala可以直接调用Java的库,反之亦然。这对于既有Java基础又想尝试新语言的开发者来说,是一个极大的...
Actor模型在Akka中扮演核心角色,这部分将解释Actor如何工作,以及如何创建、交互和管理Actor。这为开发大规模并发应用提供了基础。 第五部分:"Scala入门及进阶-part05-实战技巧与最佳实践.pdf" 提供了Scala编程的...
9. ** Akka框架**:Akka是基于Actor模型的并发处理库,通常与Scala一起用于构建高可用、容错的系统。 10. ** Spark与Scala结合**:讲解如何使用Scala来编写Spark应用程序,包括DataFrame、RDD和Spark SQL等关键组件...
这是Spark集群管理中最核心的部分之一,Akka Actor Model用于实现高度并发和容错的分布式应用。 5. **等待系统终止**:最后一步是通过`actorSystem.awaitTermination()`等待整个系统结束。在此期间,Master节点将...
初学者通常从基础语法开始,包括变量声明、函数定义、类和对象的创建,然后逐步接触更高阶的概念,如模式匹配、Actor模型、集合操作等。通过编写简单的示例程序,可以快速上手Scala编程。 总的来说,Scala是一门...
这暗示着这份资料可能来源于一个开源项目,或者是一个组织良好的学习资源,包含按章节或主题划分的Scala学习笔记和练习。 在深入探讨Scala的知识点时,我们可以关注以下几个核心领域: 1. **类型系统**:Scala拥有...
Akka框架,基于Scala的Actor库,提供了一种高效、容错的并发编程模型。通过Actor,程序中的组件可以并行执行,且通过消息传递进行通信,避免了共享状态的问题,从而简化了并发编程的复杂性。 另外,Scala还与Java...
Scala的Akka库提供了Actor模型,这是一种用于处理并发和分布式系统的强大工具。Actors是轻量级的线程,通过消息传递进行通信,保证了系统的一致性。 **8. Scaladoc** Scala的文档生成工具Scaladoc与Java的Javadoc...