架构师训练营第六周总结
本周讲解的内容主要分为以下几部分:
分布式数据库
NoSQL
Doris
ZooKeeper
分布式数据库中讲了数据库的主从复制和主主复制,需要注意的是主主复制中,同一时刻系统中还是只写入一台数据库服务器,只有当某一台服务器不可用时,写入另一台服务器。 不能同时写入两台服务器,很容易造成数据混乱。所以主主复制只是增加了系统可用性,并没有增加并发写能力和存储能力。
增加数据并发写能力和存储能力,主要靠的是数据分片。分片的关键自然是路由算法,简单的有硬编码和映射表法,但是映射表本身有可能成为瓶颈。常用的中间件是Mycat,是通过取模的方式来分片,只不过类似于Redis的slot, 在初始时就应该确定总片数的大小,每片都用单独的schema来存储,这样当增加数据库服务器时,只需要挪动schema的位置即可,而不需要重新分配数据表中的数据。
NoSQL主要讲了CAP原理,以及CAP在常见的NoSQL系统中的应用,Doris是老师之前设计的NoSQL。这两部分在本周作业中有涵盖,故不在此赘述。
Zookeeper是一个功能简单,但是能解决很多特定场合痛点的系统,主要用于配置管理,集群管理和选取master。因为在分布式系统中,很容易由于网络原因,形成多个分区,在这种情况下,所有客户端仍然使用同一个master十分重要。Zookeeper通过Zab协议(简化版的Paxos算法)来进行选举,当超过半数的节点同意选举提案时,则选举通过。当然Zookeeper本身也应该是个集群,防止本身的可用性出现问题。
版权声明: 本文为 InfoQ 作者【sunnywhy】的原创文章。
原文链接:【http://xie.infoq.cn/article/496af6923a6c4846e9b0217fc】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论