CQRS 框架 Axon 2 提供了对 MongoDB 的支持及性能提升

  • Jan Stenberg
  • 邵思华

2013 年 3 月 15 日

话题:语言 & 开发架构

CQRS框架Axon的最新版本支持了MongoEventStore,它使用了MongoDB作为后台存储,提供了一套简化的 API,并带来了性能上的提升。最新的发布版本 2.0允许事件对象基于 POJO 及批注(annotation)定义消息、负载和元数据。新版本中的其它特性还包括:

  • 一个高性能的命令总线,它能以一种无锁的算法并行地进行命令处理,能够在每个时间单元处理多出四倍的命令。
  • 新的代码逻辑以确保事件的序列化仅发生一次,并确保仅在实际使用事件时进行反序列化。
  • 对大量事件的重播得到极大的加快。
  • 一个分布式的命令总线,允许横向扩展至多台机器,并调整每台机器的负载。
  • 支持事件的转型(Upcasting)及分解(Demultiplexing),例如:当实现了某个新的事件结构后,能够将旧的事件转换为多个新的事件。
  • 使用AMQP进行事件分发。

该团队也发布了一个快速入门指南,包含了基于 Axon 创建一个简单系统的步骤,并且在参考指南中更新了框架的各处改动。

Axon 框架为基于 CQRS 和事件溯源(Event Sourcing)架构模式的系统提供了各种构建块,这两种模式正受到越来越多的关注。领域驱动设计(DDD)参考书籍的作者 Eric Evans 在由其他人维护的 DDD 社区网站上特别指出了它们的重要性:

“CQRS 和 Event Sourcing 是实现 DDD 的两种密切相关的架构方式,它们也是过去几年中 DDD 领域里最热门的话题。”

Axon 框架由Allard Buijze所创建,它是一个基于 Apache 授权的开源产品,当前的版本是 2.0,并且可以选择付费的支持。

目前已有了一个专属 Axon 用户的论坛,上面已经聚集了约 200 名用户,产出了 300 篇帖子。有一篇关于真实世界中的实际经验的讨论列举了对这个框架的正面和负面的两方面评价。

查看英文原文CQRS Framework Axon 2 Features MongoDB Support and Performance Improvements


感谢杨赛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

语言 & 开发架构