失效链接处理 |
分布式事务常见面试题总结 PDF 下载
本站整理下载:
相关截图:
主要内容:
我们设想⼀个场景,这个场景中我们需要插⼊多条相关联的数据到数据库,不幸
的是,这个过程可能会遇到下⾯这些问题:
数据库中途突然因为某些原因挂掉了。
客户端突然因为⽹络原因连接不上数据库了。
并发访问数据库时,多个线程同时写⼊数据库,覆盖了彼此的更改。
......
上⾯的任何⼀个问题都可能会导致数据的不⼀致性。为了保证数据的⼀致性,系
统必须能够处理这些问题。事务就是我们抽象出来简化这些问题的⾸选机制。事
务的概念起源于数据库,⽬前,已经成为⼀个⽐较⼴泛的概念。
何为事务? ⼀⾔蔽之,事务是逻辑上的⼀组操作,要么都执⾏,要么都不执⾏。
事务最经典也经常被拿出来说例⼦就是转账了。假如⼩明要给⼩红转账 1000
元,这个转账会涉及到两个关键操作,这两个操作必须都成功或者都失败。
1. 将⼩明的余额减少 1000 元
2. 将⼩红的余额增加 1000 元。
事务会把这两个操作就可以看成逻辑上的⼀个整体,这个整体包含的操作要么都
成功,要么都要失败。这样就不会出现⼩明余额减少⽽⼩红的余额却并没有增加
的情况。
⼤多数情况下,我们在谈论事务的时候,如果没有特指分布式事务,往往指的就
是数据库事务。
数据库事务在我们⽇常开发中接触的最多了。如果你的项⽬属于单体架构的话,
你接触到的往往就是数据库事务了。
那数据库事务有什么作⽤呢?
简单来说,数据库事务可以保证多个对数据库的操作(也就是 SQL 语句)构成
⼀个逻辑上的整体。构成这个逻辑上的整体的这些数据库操作遵循:要么全部执
⾏成功,要么全部不执⾏ 。
|