-
Notifications
You must be signed in to change notification settings - Fork 603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于分布式事务回滚的疑问 #31
Comments
是的 |
但像例子里的 订单/余额/库存 是个非常典型的场景,如果可靠消息 对于 这个例子 没法很好的处理的话, 基于可靠消息的分布式事务一般都用在什么地方呢? |
@wuxudong 你这种情况就不适合用 最终一致性来解决 |
myth 是可靠消息来解决分布式事务,如果你想要回滚的策略,请使用Riancat 或者hmily |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
以 demo中的 myth-demo-spring-cloud-inventory 为例,
order 模块的 PaymentServiceImpl.makePayment 先询问了 account 模块的余额 和 inventory 模块的 库存, 假设目前 余额和库存 都足够, 然后 发起了 accountClient.payment 和 inventoryClient.decrease
这时 accountClient.payment 正常执行了。
而 inventoryClient.decrease 由于 并发的存在, 可能这时 库存已经被别人的订单 减为 0, 从而 这次的 inventoryClient.decrease 抛出了 MythRuntimeException("spring cloud inventory-service 库存不足!")
那这种情况下, account 模块 应该不会被回滚吧? 是不是 只能用tcc 方法来解决这些问题, 可靠消息 只能 保证 减库存操作一定被发送到, 但能不能扣减成功就没办法了?
The text was updated successfully, but these errors were encountered: