深入浅出分布式技术原理
陈现麟
伴鱼技术中台负责人,前小米工程师
21241 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 39 讲
深入浅出分布式技术原理
15
15
1.0x
00:00/00:00
登录|注册

22|事务(一):一致性,事务的集大成者

事务结果的永久性
事务并发执行的独立性
全部执行或全部不执行
数据状态的正确转换
事务一致性 vs 数据一致性
特性间的直接联系与影响
一致性依赖其他三特性
应用层业务逻辑约束检测
数据库层约束检测
事务的原子性、隔离性、持久性协作
数据复制的强一致性策略
持久性 (Durability)
隔离性 (Isolation)
原子性 (Atomicity)
一致性 (Consistency)
财务收支不一致问题
用户购买课程余额扣除但购买失败
数据一致性保证
组合操作
思考题
事务特性的相互联系
一致性的实现
事务的四个特性
事务场景问题
事务定义
事务的概念与实现

该思维导图由 AI 生成,仅供参考

你好,我是陈现麟。
通过学习“数据复制”系列的内容,我们使用数据复制,将同一份数据按一定的策略复制到多台机器上,解决了存储服务由于宕机等故障,不能为用户提供服务和数据丢失的问题,恭喜你又攻克了一个难关。
但是,由于极客时间用户量增多,每一天课程购买的订单数都在急剧增加,你开始接到用户这样的投诉,他在购买课程时出现了错误,课程没有购买成功,但是余额却被扣了。同时,财务的同事也开始向你反馈,他们在算账时,发现收入和支出的数目对不上。在遇到这样的问题时,你是不是一时抓不到头绪呢?其实这些都是我们工作中经常碰到的事务场景问题。
那么从这节课开始,我们将一起花四节课的时间来解决分布式场景下的事务问题。这一节课,我们先通过分析业务场景来讨论事务是什么,以及它可以解决的问题,然后学习它的四个特性:一致性、原子性、隔离性和持久性,最后再一起来讨论如何实现事务的一致性。

事务是什么

在本课开头,我们列举了工作中经常碰到的两个事务场景问题,那么我们先来了解一下事务是什么?事务可以看成是一个或者多个操作的组合操作,并且它对这个组合操作提供一个保证,如果这个组合操作之前的数据是一致的(即正确的),那么操作之后的数据也应该是一致的。不论这个组合操作执行的过程中,是否发生系统故障,还是在这个组合操作执行的过程中,是否与其他事务一起执行。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了分布式系统中事务的重要性和实现一致性的方法。首先,文章介绍了事务的概念和四个特性:一致性、原子性、隔离性和持久性。通过具体的业务场景问题分析,阐述了事务的优势和重要性。接着,文章从多个角度讨论了事务一致性的实现,包括底层存储的多副本数据强一致性、事务的原子性、隔离性和持久性的协作,以及数据库层和应用层的约束检测等方面。这些多维度的保障方式使得事务一致性不仅仅是事务层面的问题,而是涉及到底层存储、事务特性和约束检测等多方面的协作。最后,文章强调了事务的四个特性之间的相互联系和影响,以及事务的优雅抽象简化了研发工作负担。总的来说,本文通过深入浅出的解释,为读者提供了对分布式系统中事务处理的全面了解,使读者能够快速了解事务的概念、重要性和实现一致性的方法。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 不吃辣👾
    数据一致性是对复制而言,无偏差复制。事务一致性是对业务而言,符合现实逻辑。

    作者回复: 👍

    2022-03-30
    2
    12
  • 李二木
    感觉并发例子举得不妥。并发流程图里表示的串行执行。这里要加个锁什么的吧?

    作者回复: 是的,相当于串行执行,可能会通过锁实现,不过对于图来说,重点突出的是串行执行,实现细节可以不描述的。

    2022-03-23
    1
  • 雾都
    我觉得是两个概念,举个栗子,我账户余额10,小明账户余额5,现在我要给小明转一块钱,在主副本中写入我账户余额9,小明账户余额5,主副本同步数据到从副本,我账户余额9,小名账户余额5。上述情况中,事务一致性没有得到保证,但是数据一致性得到了保证。

    作者回复: 非常正常👍。 另外,事务一致性和数据的一致性,在“共识(三)”中会有更多的讨论。

    2022-03-23
    1
  • 普通熊猫 ଘ(੭ˊ꒳​ˋ)੭✧
    ACID四个特性,A是目的,I是手段,D是容灾。只有C,没有一家数据库实现了,也不可能单独靠数据库保证,所以说C就是打酱油的

    作者回复: 非常不错,不过有个小问题,C 是目的,数据库部分由 A,I,D 来实现。

    2022-03-23
  • Geek_8b0800
    老师,我的疑问如下: 有了底层存储多副本数据强一致性的支持,以及事务三个特性的保驾护航,不能够保证一定满足数据库层以及业务层的约束规则吗?为什么还有进行约束检测呢
    2022-08-26归属地:河南
  • Geek_8b0800
    老师,我有一个疑问:有了底层存储多副本数据强一致性的支持,以及事务三个特性的保驾护航,那么为什么还要做数据库层以及业务层的约束规则,所以最后我们要做好约束检测。这里又分为如下两个层面来讨论。
    2022-08-26归属地:河南
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部