35、深入探索 Akka 演员模型:从基础到高级应用

深入探索 Akka 演员模型:从基础到高级应用

1. SARAH 与插件架构

SARAH 采用插件架构,针对每个主要功能领域都有对应的插件,例如电子邮件插件、Facebook 插件、Twitter 插件等。每个插件通常有一个父演员(Actor),必要时会将工作委托给子演员。所有这些插件都在一个 ActorSystem 下运行。当 SARAH 启动时,它会使用特定方法启动 ActorSystem,启动后会创建三个主要演员,分别命名为 brain、ears 和 mouth,然后启动其插件。

这里有一个有趣的实验:移除 Main 对象末尾的 system.shutdown 行,你会发现应用程序不会终止,因为演员和系统仍在运行。若要终止应用程序,可按 Control - C。

2. ActorRef 的特性与使用

当在 ActorSystem 上调用 actorOf 方法时,它会异步启动演员并返回一个 ActorRef 实例。这个引用就像是演员的“句柄”,可以看作是你与实际演员之间的一个外观(façade)或代理(broker)。它能防止你做出破坏演员模型的操作,比如直接访问 Actor 实例并尝试直接修改变量。这类任务应该通过向演员发送消息来完成,而 ActorRef 的这种“不干涉”方式有助于强化正确的编程实践。

Akka 文档指出 ActorRef 具有以下特性:
- 它是不可变的。
- 它与所代表的 Actor 具有一对一的关系。
- 它是可序列化的,并且支持网络操作,这使得你可以在网络中传递 ActorRef。

3. 创建带参数构造函数的演员

有时候,你可能想创

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值