分布式事务,一次性说清
的确,分布式事务的落地实践相对比较复杂,和数据库分库分表一样,很多公司采取的策略都是能不碰就不碰,因为在业务规模不庞大时,设计分布式事务要投入的精力,可能比采取人工补偿多得多。
无论如何,跳槽面试,分布式事务,依然是大厂必考必问的核心知识点。今天,我们从概念 → 实战方法论,深入浅出聊下分布式事务。
常见面试题1:分布式事务产生的背景?
单体架构下,多个不同的业务逻辑使用的都是同一个数据源,单一事务管理器情况下,不存在事务问题。
而在分布式或者微服务架构中,每个服务都有自己的数据源,使用不同事务管理器,如果两个服务执行成功之后出现了异常,A 服务的事务会回滚,但是 B 服务的事务不会回滚,分布式事务就出现了。
画外音:单体架构偶尔也会存在多数据源事务管理,解决方案通常采用 jta+ atominc。
常见面试题2:分布式事务方案通常有哪些?
-
-
-
TCC:业务层面的分布式事务,Try - Confirm - Cancel;
-
-
消息事务:以 RocketMQ 为代表,通过中间件实现;
-
常见面试题3:什么是 BASE 理论?
-
基本可用(Basically Available);
-
-
最终一致性(Eventually Consistent)。
BA(Basically Available):鼓励通过架构设计,把可能影响全平台的严重问题,转化为只影响平台中的一部分数据或者功能的非严重问题。
软状态:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。
最终一致性:指数据在多个副本之间能否保持一致的特性,也是分布式事务要解决的终极问题。
常见面试题4:最终一致性分为哪几种?
-
因果一致性(Causal consistency);
-
-
会话一致性(Session consistency);
-
单调读一致性(Monotonic read consistency);
-
单调写一致性(Monotonic write consistency)。
常见面试题5:Seata和LCN有何区别?
Seata 是阿里设计用来专门解决分布式事务的框架,未来可能会成为主流。
Seata 和 LCN 的思想相近,只不过 LCN 中采用的是假关闭,两者的区别是出错时,LCN 会发生死锁,而 Seata 不会,但 Seata 会脏读。
TCC、Seata 等分布式事务方案如何落地实践?每种方案分别更适合什么业务?如何设计高可用、高并发的分布式事务架构?
针对这些实践难点特别向你推荐前58技术委员会主席孙玄打造的《百万年薪架构师必备能力—亿级企业分布式事务多场景多维度架构设计的全攻略实践》在线专栏课。3 大篇章 12 模块干货课程,年中限时特价 0.99。
课题:亿级企业分布式事务多场景多维度架构设计全攻略实践
时间:6.21-6.23 三天精讲,20:00开始
-
掌握百万年薪架构师的顶级架构设计思维模型,具备以不变应万变的架构设计能力;
-
掌握亿级企业分布式事务架构设计哲学本质,沉淀分布式事务架构设计方法论,从而能够给出优雅架构设计解决方案;
-
掌握亿级企业同步业务场景分布式事务架构设计的高可用设计方法论与实践,能够确保在生产环境中稳定运行;
-
掌握亿级企业异步业务场景分布式事务架构设计的高并发设计方法论与实践,再也不惧怕海量高并发;
-
掌握亿级企业分布式事务架构设计(XA/2PC/3PC/TCC/SAGAS/Seata/异步消息/事务消息/本地消息表等)的全攻略实践,从而轻松应对企业各种各样的复杂应用场景;
-
掌握亿级企业分布式架构在阿里电商、腾讯社交等不同企业场景的真实设计与实践,能够做到举一反三。
标签: