22|事务(一):一致性,事务的集大成者
陈现麟
该思维导图由 AI 生成,仅供参考
你好,我是陈现麟。
通过学习“数据复制”系列的内容,我们使用数据复制,将同一份数据按一定的策略复制到多台机器上,解决了存储服务由于宕机等故障,不能为用户提供服务和数据丢失的问题,恭喜你又攻克了一个难关。
但是,由于极客时间用户量增多,每一天课程购买的订单数都在急剧增加,你开始接到用户这样的投诉,他在购买课程时出现了错误,课程没有购买成功,但是余额却被扣了。同时,财务的同事也开始向你反馈,他们在算账时,发现收入和支出的数目对不上。在遇到这样的问题时,你是不是一时抓不到头绪呢?其实这些都是我们工作中经常碰到的事务场景问题。
那么从这节课开始,我们将一起花四节课的时间来解决分布式场景下的事务问题。这一节课,我们先通过分析业务场景来讨论事务是什么,以及它可以解决的问题,然后学习它的四个特性:一致性、原子性、隔离性和持久性,最后再一起来讨论如何实现事务的一致性。
事务是什么
在本课开头,我们列举了工作中经常碰到的两个事务场景问题,那么我们先来了解一下事务是什么?事务可以看成是一个或者多个操作的组合操作,并且它对这个组合操作提供一个保证,如果这个组合操作之前的数据是一致的(即正确的),那么操作之后的数据也应该是一致的。不论这个组合操作执行的过程中,是否发生系统故障,还是在这个组合操作执行的过程中,是否与其他事务一起执行。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了分布式系统中事务的重要性和实现一致性的方法。首先,文章介绍了事务的概念和四个特性:一致性、原子性、隔离性和持久性。通过具体的业务场景问题分析,阐述了事务的优势和重要性。接着,文章从多个角度讨论了事务一致性的实现,包括底层存储的多副本数据强一致性、事务的原子性、隔离性和持久性的协作,以及数据库层和应用层的约束检测等方面。这些多维度的保障方式使得事务一致性不仅仅是事务层面的问题,而是涉及到底层存储、事务特性和约束检测等多方面的协作。最后,文章强调了事务的四个特性之间的相互联系和影响,以及事务的优雅抽象简化了研发工作负担。总的来说,本文通过深入浅出的解释,为读者提供了对分布式系统中事务处理的全面了解,使读者能够快速了解事务的概念、重要性和实现一致性的方法。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》,新⼈⾸单¥59
《深入浅出分布式技术原理》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(6)
- 最新
- 精选
- 不吃辣👾数据一致性是对复制而言,无偏差复制。事务一致性是对业务而言,符合现实逻辑。
作者回复: 👍
2022-03-30212 - 李二木感觉并发例子举得不妥。并发流程图里表示的串行执行。这里要加个锁什么的吧?
作者回复: 是的,相当于串行执行,可能会通过锁实现,不过对于图来说,重点突出的是串行执行,实现细节可以不描述的。
2022-03-231 - 雾都我觉得是两个概念,举个栗子,我账户余额10,小明账户余额5,现在我要给小明转一块钱,在主副本中写入我账户余额9,小明账户余额5,主副本同步数据到从副本,我账户余额9,小名账户余额5。上述情况中,事务一致性没有得到保证,但是数据一致性得到了保证。
作者回复: 非常正常👍。 另外,事务一致性和数据的一致性,在“共识(三)”中会有更多的讨论。
2022-03-231 - 普通熊猫 ଘ(੭ˊ꒳ˋ)੭✧ACID四个特性,A是目的,I是手段,D是容灾。只有C,没有一家数据库实现了,也不可能单独靠数据库保证,所以说C就是打酱油的
作者回复: 非常不错,不过有个小问题,C 是目的,数据库部分由 A,I,D 来实现。
2022-03-23 - Geek_8b0800老师,我的疑问如下: 有了底层存储多副本数据强一致性的支持,以及事务三个特性的保驾护航,不能够保证一定满足数据库层以及业务层的约束规则吗?为什么还有进行约束检测呢2022-08-26归属地:河南
- Geek_8b0800老师,我有一个疑问:有了底层存储多副本数据强一致性的支持,以及事务三个特性的保驾护航,那么为什么还要做数据库层以及业务层的约束规则,所以最后我们要做好约束检测。这里又分为如下两个层面来讨论。2022-08-26归属地:河南
收起评论