架构师训练营第六周学习总结

发布于: 2020 年 07 月 15 日

本周,老师主要讲解了分布式数据库中的数据分片,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

用户头像

fenix

关注

还未添加个人签名 2018.03.02 加入

还未添加个人简介

评论 (1 条评论)

发布
用户头像
请添加“极客大学架构师训练营”标签,方便分类
15 小时前
回复
没有更多了
架构师训练营第六周学习总结