SpringCloud 面试题, 什么是 Seata?谈谈建立对于 Seata 的理解?
SpringCloud 面试题, 什么是 Seata?谈谈建立对于 Seata 的理解?
QA
Step 1
Q:: 什么是Seata?
A:: Seata(Simple Extensible Autonomous Transaction Architecture)是一款开源的分布式事务解决方案,致力于简化微服务架构下的分布式事务处理。Seata通过全局事务协调器(TC)、事务管理器(TM)和资源管理器(RM)三者的协同工作,来管理跨多个微服务的事务。
Step 2
Q:: Seata的核心组件有哪些?
A:: Seata的核心组件包括全局事务协调器(Transaction Coordinator, TC)、事务管理器(Transaction Manager, TM)和资源管理器(Resource Manager,
RM)。TC负责全局事务的管理和协调;TM嵌入在应用中,负责事务的开始、提交和回滚;RM嵌入在资源中,负责具体的资源操作和资源的提交或回滚。
Step 3
Q:: Seata的全局事务是如何实现的?
A:: Seata全局事务的实现主要通过三阶段提交协议(TCC)来实现。首先,事务管理器TM会发起一个全局事务,所有参与的微服务会注册分支事务到全局事务协调器TC。当所有的分支事务准备就绪后,TC会决定是否提交或回滚整个全局事务。
Step 4
Q:: 如何在SpringCloud中集成Seata?
A:: 在SpringCloud中集成Seata,需要引入Seata的依赖,并进行相关的配置。例如,需要配置数据源代理、全局事务ID的传递、TM的启动和TC的注册等步骤。Seata还可以与SpringCloud的其他组件如Feign、Ribbon等集成,以确保分布式事务的一致性。
Step 5
Q:: Seata支持哪些模式的分布式事务?
A:: Seata支持多种分布式事务模式,包括AT模式(Automatic Transaction)、TCC模式(Try-Confirm-
Cancel)、SAGA模式和XA模式。其中,AT模式是Seata的默认模式,适用于大多数场景;TCC模式提供了更细粒度的事务控制;SAGA模式适用于长事务场景;XA模式则支持分布式数据库的事务。