关键词:拆分、事务、2PC、CAP、BASE、Paxos
一、数据库垂直/水平拆分
1、数据库减压的方案:
(a)优化应用;(b)缓存、搜索引擎;(c)将数据库的数据和访问分到多台数据库上
2、垂直拆分的影响:单机事务 ACID、JOIN 操作、外键约束
3、水平拆分的影响:单机事务 ACID、JOIN 操作、外键约束、自增序列唯一 ID、查询跨库
二、分布式事务
1、分布式事务处理模型-X/Open DTP 模型
三个组件:AP 应用程序、RM 资源管理器、TM 事务管理器
四个概念:事务、全局事务、分支事务、控制线程
2、两阶段提交协议-2PC
在提交之前增加了准备的阶段,称之为两阶段提交;
缺点:开销增大了(交互次数增多的网络开销、额外引入事务管理器的开销)
3、CAP 理论:接收状态并不需要时刻保持一致,只需要最终一致即可
C 一致性-Consistency:所有节点在同一时间读到同样的数据(也即有新数据写入成功后,所有节点会同时看到这个新数据)
A 可用性-Availability:保证无论是成功还是失败,每个请求都能收到一个反馈(也即系统一定要有响应)
P 分区容忍性-Partition Tolerance:即使系统中有部分问题或有消息的丢失,但是系统仍然能够继续运行(也即系统一部分出现问题时,系统仍能继续工作)
4、BASE 模型
Basically Available:基本可用,允许分区失败
Soft state:软状态,接受一段时间的状态不同步
Eventually consistent:最终一致,保证最终数据的状态是一致的
也即不保证数据变化前后所有节点立刻一致,但是保证它们最终是一致的
5、Paxos 协议
Paxos 协议的前提是不存在拜占庭将军问题(也即,是需要有一个可信的通信环境,信息都是准确的,没有被篡改)
6、集群内数据一致性算法
Quorum 算法、Vector Clock 算法
【读书系列】
《大型网站系统与 Java 中间件实践》,曾宪杰,电子工业出版社
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于