构建响应式应用:从 Akka Typed 到 Akka Streams
1. Akka Typed 应用测试与运行
在某些场景下,我们使用 TestProbe
创建烤箱和管理器(与之前使用的 TestInbox
不同),并使用 ActorTestKit
的 spawn
方法创建烘焙师行为。向烘焙师发送请求后,期望其能将单个饼干放入烤箱。之后,可通过检查在此期间无消息发送来确认烘焙师在等待饼干烤制完成。这里使用年度时间,检查可即时完成。最后,手动推进计时器,让烘焙师从烤箱中取出饼干,并验证是否按预期发生,即烤箱是否收到 Extract
消息。
若尚未安装 Java 和 SBT,请参考相关文档进行安装。运行应用时,可在终端中按如下方式操作:为商店和面包店分别开启两个独立的终端会话,既可以交互模式运行,也可以在相应的 shell 中执行以下命令:
sbt "runMain ch12.Store"
sbt "runMain ch12.Bakery"
由于此示例使用集群而非远程通信,因此无需像上一章节那样按特定顺序启动它们。应用的两个部分启动后,会建立连接并协同工作以生产饼干。
2. Akka Typed 特性总结
- 类型安全的 actor 系统 :Akka Typed 允许以类型安全的方式实现 actor 系统,将 actor 逻辑表示为类型良好的行为