您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Axon Framework:具有两个或三个微服务之间的补偿事件的Saga项目

Axon Framework:具有两个或三个微服务之间的补偿事件的Saga项目

首先,让我回答您的主要问题:

我的问题是有人用Axon做过类似的事情吗?

很快,是的,因为这是Sagas的主要用例之一。根据经验,我想说明Saga可用于 协调以下 之间 的复杂业务交易

从表面上看,您似乎已经进入了委派复杂业务交易的第二种选择。

重要的是要注意,在使用Sagas时,您应该 处理 异常和/或命令调度结果。

因此,如果您从“主站”向“从站1”发送命令,而后者却使操作失败,则该结果 将返回 到Saga。因此,这为您提供了重试操作的第一种选择,我建议您使用 。最后,通过补偿动作,我正在谈论调度命令来触发它。

如果您不能依靠调度命令的直接响应,那么在Saga中重试/重新调度消息将是第二种合理的选择。

为此,Axon具有EventSchedulerDeadlineManager。请注意,两者中的前者会发布一个事件 ,以供所有人查看 。后者DeadlineMessage在单个Saga实例的上下文中调度a ,从而限制了可以看到重试的范围。

通常,这DeadlineManager将是我的首选操作方式,除非您要求每个人都可以看到此“重新安排动作”。仅供参考,请在页面获取EventScheduler信息,并在页面获取DeadlineManager信息。

其他 2022/1/1 18:22:21 有596人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶