Week06 学习心得
数据分片
1)定义:数据由分片成各个片段数据,各个片段分配到不同的服务器上。
2)架构:Amoeba/Cobar架构
3)面临的挑战
处理逻辑复杂,需要大量额外代码
无法执行多分片联合查询
无法使用数据库事务
随着数据增长,如何增加更多服务器
NoSQL
CAP原理
C - Consistency 一致性
每次读取的数据都应该是最近写入的数据或返回一个错误,而不是过期数据,即数据是一致的。
A - Availability 可用性
系统需要一直都是可正常使用的,不会引起调用者的异常,但并不保证响应的数据是最新的。
P - Partition tolerance 分区耐受性
即使因为网络原因,部分服务器节点之间消息丢失或延迟了,系统依然应该是可操作的。
ACID
A - Atomicity 原子性
事务要么全部完成,要么全部取消。如果事务崩溃,需要事务回滚。
C - Consistency 一致性
只有合法的数据(依照关系约束和函数约束)才能写入数据库。
I - Isolation 隔离性
如果2个事务T1和T2同时运行,最终结果是相同的,不管谁先结束,隔离性主要依靠锁实现。
D - Durability 持久性
一旦事务提交,不管发生什么,数据都要保存在数据库中。
BASE
BA - Basically Available 基本可用
系统在出现不可预知故障时,允许损失部分可用性。
S - Soft state 弱状态
允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
E - Eventually consistent 最终一致性
系统中所有的数据副本在经过一段时间的同步后,最终能够达到一个一致的状态,因此最终一致性的本质是需要系统保证数据能够达到一致,而不是需要适时保证数据的强一致性。
分布式一致ZooKeeper
分布式系统脑裂
定义:在分布式系统中,不同服务器获得了相互冲突的数据或执行指令,导致整个集群陷入混乱,数据损坏。
分布式一致性算法Paxos
通过该算法解决在常见的主主备份场景,如何选择一个主服务器为写服务器的问题
评论