美文网首页
分布式事务实现- 事件溯源

分布式事务实现- 事件溯源

作者: 文刀雨 | 来源:发表于2021-03-15 21:43 被阅读0次

消息驱动

  • 事件不要求持久化保存
  • 消息只是为了更新业务数据的状态,数据库才是一等数据
  • 不要求所有的数据操作都通过消息驱动

事件溯源

  • 事件作为一等数据保存
  • 统一的事件管理器和接口,数据更新都由事件产生
  • 数据库中数据的当前状态根据事件的聚合产生
  • 聚合数据可以保存在数据库中,可以根据事件重新生成

事件溯源的优点

  • 历史重现:从事件中重新生成视图数据库
  • 方便的数据流处理于报告生成
  • 性能
  • 服务的松耦合

事件溯源的缺点

  • 只能保证事务的最终一致性
  • 设计和开发思维的转变,学习成本
  • 事件结果的改变
  • 扩展性:Event Store的分布式实现,事件的分布式处理

消息驱动 vs事件溯源

  • 一等数据:事件vs业务数据
  • 事件永久保存、历史重现
  • 所有数据更新都必须通过事件来产生
  • Event Store服务承担更多的功能

事件溯源的数据一致性

  • 一个事件只处理一个服务的数据
  • 保证事件的至少一次处理、幂等性
  • 业务请求的错误处理:多次重试失败、网络异常、服务不可用

事件溯源和CQRS

  • CQRS:命令查询职责分离
  • C端执行命令,Q端执行查询

事件溯源与Axon框架

Axon框架介绍

  • 实现Event Sourcing和CQRS模式的框架
  • 实现了命令、事件的分发、处理、聚合、查询、存储
  • 提供标签式开发,易维护,并提供了Spring boot的集成
  • 提供Command和Event
  • 可扩展,可用于分布式环境,如Spring Cloud

Axon框架的构成

  • 聚合:Aggregate
  • 聚合的资源库:Repository
  • Command:Command Bus 和 Command handler
  • Event :Event Bus 、Event Handler 和Event Store
  • Sage: 基于事件的流程管理模式
  • Query: 执行数据查询操作的特殊Command

Axon框架的构成- 可扩展性

  • 分布式Command分发
  • 通过AMQP实现分布式Event分发和处理
事件溯源与Axon框架图.png

相关文章

网友评论

      本文标题:分布式事务实现- 事件溯源

      本文链接:https://www.haomeiwen.com/subject/rdjuuktx.html