架构师训练营第六周总结

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

本周讲解的内容主要分为以下几部分:

  • 分布式数据库

  • NoSQL

  • Doris

  • ZooKeeper



分布式数据库中讲了数据库的主从复制和主主复制,需要注意的是主主复制中,同一时刻系统中还是只写入一台数据库服务器,只有当某一台服务器不可用时,写入另一台服务器。 不能同时写入两台服务器,很容易造成数据混乱。所以主主复制只是增加了系统可用性,并没有增加并发写能力和存储能力。

增加数据并发写能力和存储能力,主要靠的是数据分片。分片的关键自然是路由算法,简单的有硬编码和映射表法,但是映射表本身有可能成为瓶颈。常用的中间件是Mycat,是通过取模的方式来分片,只不过类似于Redis的slot, 在初始时就应该确定总片数的大小,每片都用单独的schema来存储,这样当增加数据库服务器时,只需要挪动schema的位置即可,而不需要重新分配数据表中的数据。



NoSQL主要讲了CAP原理,以及CAP在常见的NoSQL系统中的应用,Doris是老师之前设计的NoSQL。这两部分在本周作业中有涵盖,故不在此赘述。



Zookeeper是一个功能简单,但是能解决很多特定场合痛点的系统,主要用于配置管理,集群管理和选取master。因为在分布式系统中,很容易由于网络原因,形成多个分区,在这种情况下,所有客户端仍然使用同一个master十分重要。Zookeeper通过Zab协议(简化版的Paxos算法)来进行选举,当超过半数的节点同意选举提案时,则选举通过。当然Zookeeper本身也应该是个集群,防止本身的可用性出现问题。



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

sunnywhy

关注

还未添加个人签名 2019.04.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第六周总结