Akka 工具包 2.3 版本发布,支持 Java 8 和持久化

  • Jan Stenberg
  • 臧秀涛

2014 年 3 月 14 日

话题:JavaScala架构

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

JavaScala架构