SpringCloud面试题, Seata 的事务执行流程是什么样的?
SpringCloud面试题, Seata 的事务执行流程是什么样的?
QA
Step 1
Q:: Seata 的事务执行流程是什么样的?
A:: Seata 是一个分布式事务解决方案,通常用于解决微服务架构中分布式事务的问题。Seata 的事务执行流程包括三个主要组件:Transaction Coordinator (TC),Transaction Manager (TM),和 Resource Manager (RM)
。
1.
TM 向 TC 发起一个全局事务。
2.
TM 在各个参与的微服务中执行分支事务,分支事务会注册到 TC。
3.
当所有分支事务执行完毕后,TM 向 TC 发送提交请求。
4.
TC 收到提交请求后,通知各个 RM 提交或回滚分支事务。
5.
RM 执行提交或回滚操作,并将结果通知 TC。
6.
TC 最终决定是全局提交还是回滚,并通知 TM 事务结果。
在实际生产环境中,Seata 主要用于保障分布式系统中事务的一致性,特别是在微服务架构中,多个服务之间的数据一致性非常关键。
Step 2
Q:: 什么是 Seata?
A:: Seata (Simple Extensible Autonomous Transaction Architecture) 是一个开源的分布式事务解决方案,主要用于解决微服务架构中的分布式事务问题。Seata 提供了高效、易用的分布式事务管理功能,支持 AT 模式(Automatic Transaction),TCC 模式(Try-Confirm-
Cancel),以及 Saga 模式,帮助开发者在分布式环境中确保数据的一致性。
Step 3
Q:: Seata 中的 AT 模式是什么?
A:: Seata 的 AT 模式是一种自动化事务管理模式,AT 模式通过对业务操作的自动代理,将业务的本地事务切分为全局事务的一部分。AT 模式的核心流程包括:
1.
业务操作在本地事务中执行并提交。
2.
在提交本地事务时,Seata 拦截并记录必要的回滚信息。
3.
在全局提交或回滚时,Seata 使用记录的回滚信息执行数据恢复或提交。
这种模式适用于事务模型简单且性能要求较高的场景。
Step 4
Q:: Seata 的 TCC 模式是什么?
A:: TCC (Try-Confirm-Cancel)
是一种分布式事务模式,在 Seata 中,TCC 模式提供了更细粒度的事务控制,允许开发者显式地定义每个事务分支的三个阶段:
1.
Try 阶段:预留业务资源。
2.
Confirm 阶段:确认业务操作并真正提交。
3.
Cancel 阶段:在发生异常时撤销之前的操作。
TCC 模式适用于需要更高自定义操作的场景,通常在业务操作比较复杂或者性能要求较高的系统中使用。