写点什么

技术选型能力反映了架构师的综合水平(第 6 周学习总结)

用户头像
李德政
关注
发布于: 2020 年 07 月 15 日

一、分布式数据库和NoSQL

1. MySQL复制注意事项:



  1. 主主复制的两个数据库不能并发写入

  2. 复制只是增加了数据的读并发能力,没有增加写并发能力和存储能力

  3. 更新表结构会导致巨大的同步延迟

2. 数据分片:



  • 分片目标

  • 分片特点

  • 分片原理

3. 分布式数据库中间件



扩缩容:将数据分散在多个数据库database,扩容时,迁移database。

4. CAP原理



分布式系统 可用性、一致性、分区耐受性无法同时满足。



一致性Consistency

一致性是说,每次读取的数据都应该是最近写入的数据或者返回一个错误,而不是过期数据,也就是说,数据是一致的。



可用性Availability

可用性是说,每次请求都应该得到一个响应,而不是返回一个错误或者失去响应,不过这个响应不需要保证数据是最近写入的,也就是说系统需要一直都是可以正常使用的,不会引起调用者的异常,但是并不保证响应的数据是最新的。



分区耐受性Partition tolerance

分区耐受性是说,即使因为网络原因,部分服务器节点之间消息丢失或者延迟了,系统依然应该是可以操作的。



CAP原理

当网络分区失效发生的时候,我们要么取消操作,这样数据就是一致的,但是系统却不可用;要么我们继续写入数据,但是数据的一致性就得不到保证。

对于一个分布式系统而言,网络失效一定会发生,也就是说,分区耐受性是必需要保证的,那么在可用性和一致性上就必须二选一。

当网络分区失效,也就是网络不可用的时候,如果选择了一致性,系统就可能返回一个错误码或者干脆超时,即系统不可用。如果选择了可用性,那么系统总是可以返回一个数据,但是并不能保证这个数据是最新的。

所以,关于CAP原理,更准确的说法是,在分布式系统必须要满足分区耐受性的前提下,可用性和一致性无法同时满足。

5. 最终一致性



数据最终一致

冲突解决策略:根据时间戳,最后写入覆盖。

客户端冲突解决。

投票解决冲突(Cassandra)。

二、分布式一致ZooKeeper

1. 分布式系统脑裂



在一个分布式系统中,不同服务器获得了互相冲突的数据信息或者执行指令,导致整个集群陷入混乱,数据损坏,称为分布式系统脑裂。

2. 分布式一致性算法Paxos

三个角色:Proposer,Acceptor,Learner



发布于: 2020 年 07 月 15 日阅读数: 75
用户头像

李德政

关注

还未添加个人签名 2017.11.30 加入

还未添加个人简介

评论

发布
暂无评论
技术选型能力反映了架构师的综合水平(第 6 周学习总结)