【发布时间】:2020-09-17 04:12:52
【问题描述】:
对于我想使用 Axon 为几个服务实现 Saga 编排的用例,我已经构建了:
- order-service(具有 Spring boot + Axon Framework 的传奇编排器)
- 支付服务(微服务)
- 运输服务(微服务)
然后我有一个用 @Saga 注释的类,带有 3 个步骤/事件处理程序:
- 已创建订单(首次服务)
- 付款完成(第二次服务)
- 订单发货(第三次服务)
- 订单已有效创建
我的问题是我应该如何回滚/补偿之前执行的所有步骤,例如,如果运输服务失败?
从文档中我有一些疑问:
- 我需要用@Saga 创建一个新类吗?
- 在失败的服务上我应该抛出异常还是将错误发送到另一个命令/事件
- 我应该怎么打电话给
SagaLifecycle.end()
如果有一个显示一些代码的解决方案会很棒。谢谢!
【问题讨论】:
-
如果有一个显示一些代码的解决方案会很棒。谢谢! - 有一个显示一些代码的问题会很棒...... :)
标签: spring-boot microservices axon saga