请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

我们的分布式事务的原理是这样的吗?

我们的分布式事务的原理是这样的吗?

比如,有订单服务,支付服务,库存服务 和 积分服务(四个微服务):

我们异步地开始为用户创建订单、支付、扣库存、加积分。

假设支付时,检查到订单还没有下完或者下订单失败,那么支付、扣库存、加积分,都会进入重试等待状态,直到都执行成功。

请问老师,我们的分布式事务的原理是这样的吗?

我先粗略地听了一遍,往后再来细看。

正在回答

1回答

飞天走秀同学你好:

应该是这样的:通知商户、分配骑手、结算、增加积分这几个步骤是顺序执行的,前面的步骤不执行,后面的步骤不会开始。这些步骤是订单服务控制的。

而我们的重试机制,是精细到每一次消息传输的内部,保证的是消息的正确发送与正确处理。比如说:订单服务给骑手服务发送消息,骑手服务处理失败了,会自动重新处理消息。这时候不涉及其他服务的重试。

希望可以帮到你~

0 回复 有任何疑惑可以回复我~
  • 那为什么或如何保证重新处理消息时,骑手服务就很有可能能处理成功呢?同样的消息,我觉得它第一次处理失败,后面也应该会处理失败啊?
    回复 有任何疑惑可以回复我~ 2020-11-11 15:27:29
  • Moody 回复 提问者 他门说这就是人生 #2
    处理失败有可能是其他外部系统宕机造成的,重试是有可能恢复的。
    回复 有任何疑惑可以回复我~ 2020-11-11 15:36:07
  • 提问者 他门说这就是人生 回复 Moody #3
    哦哦,好的,原来防止的是这个。和我想的分布式事务不太一样。谢谢老师啊。
    回复 有任何疑惑可以回复我~ 2020-11-11 16:00:56
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信