update docs/distributed-system/distributed-transaction.md.

This commit is contained in:
yanwankun 2020-03-29 00:52:38 +08:00 committed by Gitee
parent b4137403e7
commit 16c13093c9

View File

@ -71,7 +71,7 @@ TCC 的全称是:`Try`、`Confirm`、`Cancel`。
3. 如果发送了确认消息,那么此时 B 系统会接收到确认消息,然后执行本地的事务;
4. mq 会自动**定时轮询**所有 prepared 消息回调你的接口,问你,这个消息是不是本地事务处理失败了,所有没发送确认的消息,是继续重试还是回滚?一般来说这里你就可以查下数据库看之前本地事务是否执行,如果回滚了,那么这里也回滚吧。这个就是避免可能本地事务执行成功了,而确认消息却发送失败了。
5. 这个方案里,要是系统 B 的事务失败了咋办?重试咯,自动不断重试直到成功,如果实在是不行,要么就是针对重要的资金类业务进行回滚,比如 B 系统本地回滚后,想办法通知系统 A 也回滚;或者是发送报警由人工来手工回滚和补偿。
6. 这个还是比较合适的,目前国内互联网公司大都是这么玩儿的,要不你用 RocketMQ 支持的,要不你就自己基于类似 ActiveMQRabbitMQ自己封装一套类似的逻辑出来总之思路就是这样子的。
6. 这个还是比较合适的,目前国内互联网公司大都是这么玩儿的,要不你用 RocketMQ 支持的,要不你就自己基于类似 ActiveMQRabbitMQ自己封装一套类似的逻辑出来总之思路就是这样子的。
![distributed-transaction-reliable-message](/images/distributed-transaction-reliable-message.png)