axon java_Axon Framework 从入门、深入到放弃

  • Post author:
  • Post category:java


DDD领域驱动/CQRS读写分离/ES事件溯源 这些前沿的时髦的技术理念汇聚在一次,落地到一套完整实现方案。这就是Axon

我们从ES事件溯源开始说

传统的数据库设计只记录数据的当前状态,对于输入如何到达当前状态的过程信息则并不重视。

4a7854e4b8f2

保存当前状态.png

而ES采用了完全不同的记录方式,它记录所有改变当前状态的事件。并从这些事件累加出当前状态。它于传统方式相比有如下特性:

更好的追溯问题的起因。(传统方式只能到log中找)

更大的数据存储(是缺点也是优点,有利于数据挖掘)

对于事件只插入不更新。没有锁,吞吐量更高

更复杂的实现

4a7854e4b8f2

保存历史事件.png

ES还有一种辅助机制来减少溯源的计算量,定期做一个当前状态的快照。事件在最近的快照后进行累加

4a7854e4b8f2

保存历史事件-快照.png

领域驱动中提到过充血/失血模型

传统实现是失血模型,数据和行为是分离的。数据存储在数据库中,使用时加载到应用服务器,然后处理之后再存入数据库。

而真正面相对象的设计中,数据和行为是在一起的(比如Actor模型),



版权声明:本文为weixin_36102776原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。