前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式事务,一次性说清

分布式事务,一次性说清

作者头像
架构师之路
发布2021-07-15 13:15:04
5900
发布2021-07-15 13:15:04
举报
文章被收录于专栏:架构师之路架构师之路

经常看到有朋友问:怎么做分布式事务?

的确,分布式事务的落地实践相对比较复杂,和数据库分库分表一样,很多公司采取的策略都是能不碰就不碰,因为在业务规模不庞大时,设计分布式事务要投入的精力,可能比采取人工补偿多得多。

无论如何,跳槽面试,分布式事务,依然是大厂必考必问的核心知识点。今天,我们从概念 → 实战方法论,深入浅出聊下分布式事务。

常见面试题1:分布式事务产生的背景?

单体架构下,多个不同的业务逻辑使用的都是同一个数据源,单一事务管理器情况下,不存在事务问题。

而在分布式或者微服务架构中,每个服务都有自己的数据源,使用不同事务管理器,如果两个服务执行成功之后出现了异常,A 服务的事务会回滚,但是 B 服务的事务不会回滚,分布式事务就出现了。

画外音:单体架构偶尔也会存在多数据源事务管理,解决方案通常采用 jta+ atominc。

常见面试题2:分布式事务方案通常有哪些?

一般分为 6 种。

  • 2PC:强一致性;
  • 3PC:相对于 2PC 引入超时机制;
  • TCC:业务层面的分布式事务,Try - Confirm - Cancel;
  • 本地消息表:利用各系统本地事务实现分布式事务;
  • 消息事务:以 RocketMQ 为代表,通过中间件实现;
  • 最大努力通知:柔性事务思想。

常见面试题3:什么是 BASE 理论?

先回答3个概念:

  • 基本可用(Basically Available);
  • 软状态(Soft State);
  • 最终一致性(Eventually Consistent)。

BA(Basically Available):鼓励通过架构设计,把可能影响全平台的严重问题,转化为只影响平台中的一部分数据或者功能的非严重问题。

软状态:允许系统中的数据存在中间状态,并认为该状态不影响系统的整体可用性,即允许系统在多个不同节点的数据副本存在数据延时。

最终一致性:指数据在多个副本之间能否保持一致的特性,也是分布式事务要解决的终极问题。

常见面试题4:最终一致性分为哪几种?

5种:

  • 因果一致性(Causal consistency);
  • 读己之所写(Read your writes);
  • 会话一致性(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。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常见面试题1:分布式事务产生的背景?
  • 常见面试题2:分布式事务方案通常有哪些?
  • 常见面试题3:什么是 BASE 理论?
  • BA(Basically Available):鼓励通过架构设计,把可能影响全平台的严重问题,转化为只影响平台中的一部分数据或者功能的非严重问题。
  • 常见面试题4:最终一致性分为哪几种?
  • 常见面试题5:Seata和LCN有何区别?
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档