架构师训练营 - 第六周
作业一(至少完成一项):
请简述 CAP 原理。
C:Consistency (一致性):每次读取时不会返回过期的数据。这句话是说一个请求,如果做不到返回最新数据,就该返回错误(告知服务不可用,它无法返回期望结果)。
A:Availability (可用性):每次请求应该得到响应数据,不应返回错误。即请求不可引起调用者的异常,但也不保证返回的数据是最新的。从这里看,可用性与一致性是冲突的,实际是二选一。
P:Partiton tolerance(分区耐受性): 首先理解,不同的节点靠通信同步数据的变动。节点间的通信在实际使用过程中是必然发生故障的。而分区耐受性就是指当部分节点间的通信故障时,系统依然是可以操作的。对于一个分布式系统,局部的故障不能影响整体,至少保证可以操作。换句话说,分区耐受性,不是一个选择项,而是默认需要得到保证的。
从以上简述来看,CAP 原理就是说:对于分布式系统,在保障分区耐受性的前提下,一致性与可用性无法同时满足。
作业二:根据当周学习情况,完成一篇学习总结
数据分片
分片目标
分片特点
分片原理
1、硬编码实现数据分片
2、映射表外部存储
3、分布式数据库的中间件(解决方案):Mycat
Amoeba/Cobar 架构
Cobar 系统组件模型
如何做集群的伸缩
数据库部署方案
单一服务与单一数据库
主从复制实现伸缩
两个 Web 服务及两个数据库
综合部署
NoSQL
CAP 原理(一致性,可用性,分区耐受性)
在分布式系统必须要满足分区耐受性的前提下,可用性和一致性无法同时满足。
最终一致性
最终一致写冲突:
根据时间戳,最后写入的覆盖之前的
客户端冲突解决方案
投票解决冲突(Cassandra)
ACID 与 BASE
ACID
原子性
隔离性
持久性
一致性
BASE
基本可用
弱状态
最终一致性
Zookeeper 与 Doris
评论