当前位置: 首页 > 科技观察

这是一道关于Seata的Java面试题

时间:2023-03-19 13:45:23 科技观察

这是一道关于Seata的Java面试题。明白了”。那么,今天就跟大家聊一聊。另外,我花了很长时间准备了一份500页的PDF面试文档和10W字的Java总结面试题及答案。1、微服务架构下的Seata是什么?拆分导致一个事务单元中的多个DML操作变成跨进程或数据库的多个事务单元的多个DML操作,而传统的数据库事务无法解决此类问题,因此引出了分布式事务的概念。ENTERTITLE分布式事务本质上需要解决多个交易跨网络节点的数据一致性问题,业界常见的解决方案有两种:ENTERTITLE1.强一致性是指所有交易参与者要么全部成功,要么全部失败,全局事务协调器需要知道事务的执行状态每个交易参与者,然后根据状态决定提交或回滚数据!2.Final一致性,也叫弱一致性,是指允许多个网络节点的数据不一致,但在某个时间点,会达到数据一致性。根据CAP定理,我们可以知道强一致性方案会对应用程序的性能和可用性产生影响,所以对于对数据一致性要求不高的场景,会采用最终一致性算法。在分布式事务的实现中,对于强一致性,我们可以基于XA协议通过两阶段提交来实现,对于弱一致性,我们可以基于TCC事务模型、可靠性消息模型等方案来实现。市场上有很多针对这些理论模型的分布式事务框架,我们可以在应用中集成这些框架来实现分布式事务。西塔就是其中之一。是阿里开源的分布式事务解决方案,提供高性能易用的分布式事务服务。1.Seata事务模式Seata封装了四种分布式事务模式,即:AT模式、TCC模式、Saga模式和XA模式。下面给大家详细介绍一下:Type1:AT模式,是一种基于本地事务+二阶段协议的最终数据一致性方案,也是Seata默认的方案Type2:TCC模式,TCC事务是三者的简称词尝试、确认和取消。简单理解就是把一个完整的业务逻辑拆分成三个阶段,然后在业务逻辑层面根据每个分支事务的执行情况,使用事务管理器调用业务的Confirm。或者Cacel方法。类型3:Saga模式。Saga模式是SEATA提供的长事务解决方案。在Saga模式下,业务流程中的每个参与者都提交一个本地事务。当参与者失败时,先前成功的参与者将得到补偿。.第四种:XA模式,XA可以认为是一种强一致性事务解决方案,它使用事务资源(数据库、消息服务等)来支持XA协议,利用XA协议的机制来管理分支事务事务模式。从这四种模型中不难看出,在不同的业务场景下,我们可以使用Seata的不同事务模型来解决不同业务场景下的分布式事务问题,所以我们可以把Seata看作是一站式的分布式业务解决方案。以上就是我对Seata的理解!面试的时候经常会遇到这种宽泛的面试题,一般都是问“谈谈你对XX的理解”。遇到这样的面试题,不要慌,我会告诉你答案的。按照技术发展的逻辑,你可以先在自己的大脑中建立一个知识索引,然后根据这个索引来定位你的知识。比如对于这类问题,你一般可以建立这样一个思维逻辑:它是什么?它解决了什么问题?它的特点和优势是什么?它的核心原理是什么?为什么它能解决这类问题?大家都按照这个逻辑来回答这种面试题。是不是觉得思路异常清晰了?最后把之前分享的信息全部整理成文字,希望能提高粉丝的通过率。0%