1.TM发起全局事务,向TC注册
2.TC生成全局事务ID,返回给TM
3.TM执行本地事务(SQL操作),RM生成undo_log
4.TM向TC报告本地事务状态(成功或失败)
5.TC收集所有分支事务状态,决定提交或回滚
6.如果提交,TC通知所有RM提交本地事务,清理undo_log
7.如果回滚,TC通知所有RM执行回滚,使用undo_log恢复数据,清理日志
8.结束全局任务
需要确保流程图中的每个步骤都清晰,并且包含必要的判断节点,比如是否所有分支事务都成功。此外,可能需要考虑异常情况下的处理,比如网络问题导致TC无法收到某个分支的报告,这时候可能需要超时机制或重试。
另外,流程图中的角色(TM、RM、TC)需要明确标出,以便用户理解各组件的交互。可能还需要在流程图中加入异常处理分支,比如某个分支事务失败时,直接触发全局回滚。
最后,需要用Mermaid语法绘制流程图,确保结构清晰,逻辑正确。可能需要检查是否有遗漏的步骤,比如undo_log的生成和清理是否在正确的阶段执行,以及补偿操作的细节是否准确。
934

被折叠的 条评论
为什么被折叠?



