Axon 框架的最新版本提供了订阅查询 API,可用它订阅特定查询模型的更新,同时提供了截止期管理器,可用它调度截止期消息。最近发布的 3.3 版本还增加了Axon-Kafka 模块,可使用 Kafka 来发送和接收事件。
有了新的订阅查询 API 后,就无需通过定期检查查询模型来确定模型是否被更新,相反,现在可以给模型添加订阅,从而接收它们的所有更新。
利用新的截止期管理器,可以安排截止期消息在一个特定时间点发布。然后,可以通过添加一个用于处理截止期消息的函数,在一个 Aggregate 或 Saga 实例的范围内处理该消息。
借助 Axon-Kafka 模块,用户可以使用 Kafka 发送和接收事件。Kafka 为流事件提供了解决方案,因此,在从 Kafka 源接收事件时,Axon 重放事件处理器。对于是否应该使用 Kafka Streams 来处理事件回溯,既有人赞同,也有人提出质疑, Axon 的开发人员也对此进行了讨论。在最终的实现中,Axon 把 Kafka 作为可流式化的消息源,以一种在分布式的方式接收事件。
其他改进包括:
-
现在,一个聚合可以实例化另一个聚合,这是领域的常规性需求。
-
简化了 Handler 的配置。除此之外,一个事件处理器可以处理若干个 Saga。
-
聚合现在能够访问自己的版本,从而能够检测到发生冲突的变更,并确保查询结果包含了正确的变更。
最近发布了更新版本 3.3.2 。这个版本修复了三个已知的问题,强烈建议那些还在使用版本3.3 的用户进行升级。
Axon 框架是 JVM 平台的开源产品,为基于 CQRS 和事件溯源架构模式的系统提供构建块。该框架是由 Allard Buijze 于 2009 年创建,并基于 Apache 许可(2.0 版)进行发行。这里有些基于 Axon 的小型示例应用供下载。
AxonIQ 在今年早些时候发布了自己的事件源数据库 AxonDB ,该数据库支持基于推送的事件发布并完全符合 ACID 的事务模型,这意味着一个事务中可包含多个事件。这里有一个免费的开发者版本供下载。
查看英文原文: Axon Framework 3.3 with a Subscription Query API and Kafka Support
感谢无明对本文的审校。
评论