Akka 工具包的最新版 2.3.0 版本发布,带来了持久化特性,支持有状态的 Actor 将其内部状态持久化。该版本也为支持 Java 8 的 Lambda 表达式做好了准备。
Akka 的持久化,并不是持久化当前状态,而是持久化 Actor 状态的每次改变。状态改变会被追加到一个日志上,Actor 的内部状态可以通过重放保存的这些改变信息重新构建出来。该版本还支持事件源,支持至少交付一次消息。
借助 Java 8 和 Lambda 表达式, Actor 和有限状态机(Finite State Machine,FSM)现在都可以使用 Lambda 表达式实现,所以不再需要声明匿名内部类。
目前持久化模块和 Lambda 支持都被标记为 _ 实验特性 _,希望根据用户的反馈改善 API。
其他改进包括:
- 当受影响的节点恢复响应时,集群可以从部分不可达状态回归到正常工作状态。
- 当 Actor 消耗的资源超出一台机器的供应能力时,可以使用集群分片将有状态的 Actor 分发到多个节点上。
- 去掉了 Akka IO 包的实验特性标记,但是 Pipeline 基础设施不再使用。
- 重写了 OSGi 支持部分,使 Akka-Actor 可以成为一个 OSGi bundle。
为反映框架的变化,更新了项目文档和上手文档。Akka 是一个更大型示例响应式平台Typesafe 的一部分。
新版本有些结构上的修改,所以从2.2.* 版本升级时需要修改代码。从更早的版本升级可能还需要一些额外的步骤。
Akka 工具包是 Actor 模型的一个实现,同时提供了 Java API 和 Scala API。2.3 版本是 2014 年下半年计划中的较大型里程碑版本的第一步。
Akka 是一款开源产品,基于 Apache 2 许可证发布。
Vaughn Vernon 是《 Implementing Domain-Driven Design 》一书的作者,去年他曾谈到 Actor 模型在响应式领域驱动设计中的使用,更早的时候他还谈到过Actor 模型与领域驱动设计结合使用的基础。
大家可以访问Akka 用户论坛,目前已经有3000 多位成员。
查看英文原文: Akka Toolkit 2.3 with Java 8 and Persistence Support
评论