架构师训练营第六周学习总结
本周,老师主要讲解了分布式数据库中的数据分片,Nosql和CAP原理,以Doris为例说明了如何处理CAP之间的关系,讲解了分布式环境中保持一致的方式并介绍了Paxos算法来解决这个问题,并且介绍了zookeeper。
分布式数据库
数据分片
1.目的:是为了解决数据量超过服务器一张表的存储能力,或者解决数据库单表写操作压力大
2.实现方式:
硬编码实现数据分片
映射表外部存储
委托给分布式数据库的中间件
3.部署方案
单一服务与单一数据库
主从复制实现伸缩
两个web服务和两个数据库,随着业务的分离,数据库也跟着分离
综合部署
Nosql和CAP原理
CAP原理是指在分布式环境中,Consistency(一致性),Availability(可用性)和Partition tolerance(分区耐受性)三者无法同时满足。
Consistency(一致性)是指的每次请求如果能得到数据就一定是最新的,否则应该返回一个错误
Availability(可用性)是指的每次请求一定能得到数据,不要求一定是最新的,但不能是一个错误
Partition tolerance(分区耐受性)是指的即使因网络原因,集群中的部分服务器节点之间消息丢失或延迟,整个集群也可以正常的对外提供服务
在分布式环境中,集群一定会出现部分服务器网络不可达的情况,分区耐受性是一定需要保证的,但是在分区耐受性保证的情况下,一致性和可用性两者需要根据业务要求来权衡,但也不是不保证其中一个之后就一定能保证另一个的。
最终一致性
最终一致写冲的处理方式
简单冲突处理策略:根据时间戳,最后写入的覆盖之前的
客户端冲突解决方案
投票解决冲突
ACID与BASE
ACID是Atomicity(原子性)、Isolation(隔离性)、Durability(持久性)和Consistency(一致性)
BASE是Basically Availability(基本可用)、Soft state(弱状态)和Eventually consistency(最终一致性)
分布式一致性
分布式系统脑裂
在一个分布式系统中,不同服务器获得了互相冲突的数据信息或者执行指令,导致整个集群陷入混乱,数据损坏,称为分布式系统脑裂。
分布式一致性算法Paxos
ZooKeeper
评论 (1 条评论)