处理避免不一致国家的多国系统

问题描述 投票:0回答:1

这是我的用例:

我有一个服务(服务1)需要更新多个外部服务(服务2,服务3)中的某个实体的状态,获取请求。我还必须更新本地的状态(服务1)。我试图在这种情况下处理故障情况:

  1. 我成功更新了外部服务2和3中的状态,但无法更新服务4中的状态。
  2. 我成功更新了外部服务2和3中的状态,我死了。
  3. 我成功更新了所有外部服务中的状态,但是我无法在本地系统中保持状态。

假设服务2退还产品,服务3将发票标记为已付款。现在,如果我成功发出退款(服务2)但未将发票标记为付款(服务3),我将在财务调节期间产生严重的业务影响。

在所有这些情况下,是否有适当的方法来处理失败的情况?

database-design transactions atomic distributed-system idempotent
1个回答
1
投票

正确的方法是使用分布式事务和两阶段提交,例如应用XA协议。

© www.soinside.com 2019 - 2024. All rights reserved.