采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我们的分布式事务的原理是这样的吗?
比如,有订单服务,支付服务,库存服务 和 积分服务(四个微服务):
我们异步地开始为用户创建订单、支付、扣库存、加积分。
假设支付时,检查到订单还没有下完或者下订单失败,那么支付、扣库存、加积分,都会进入重试等待状态,直到都执行成功。
请问老师,我们的分布式事务的原理是这样的吗?
我先粗略地听了一遍,往后再来细看。
飞天走秀同学你好:
应该是这样的:通知商户、分配骑手、结算、增加积分这几个步骤是顺序执行的,前面的步骤不执行,后面的步骤不会开始。这些步骤是订单服务控制的。
而我们的重试机制,是精细到每一次消息传输的内部,保证的是消息的正确发送与正确处理。比如说:订单服务给骑手服务发送消息,骑手服务处理失败了,会自动重新处理消息。这时候不涉及其他服务的重试。
希望可以帮到你~
那为什么或如何保证重新处理消息时,骑手服务就很有可能能处理成功呢?同样的消息,我觉得它第一次处理失败,后面也应该会处理失败啊?
处理失败有可能是其他外部系统宕机造成的,重试是有可能恢复的。
哦哦,好的,原来防止的是这个。和我想的分布式事务不太一样。谢谢老师啊。
登录后可查看更多问答,登录/注册
消息驱动架构+订单状态机,二次开发,手写分布式事务框架。
1.1k 11
1.1k 8
930 7
3.5k 7
915 6