week06 小结
数据库的主从复制是为了保证系统性能,采用的读写分离的策略。而主主复制,目的是为了系统的高可用,当其中一个主挂掉,另外一个主可以接替它的工作,使系统处于高可用的状态。
由于数据库单库和单表的数据存储能力有限,对于数量特别大的场景,例如淘宝的订单数据,上百亿的数据,存在一个库和一张表里面显然是不可能的。所以需要对数据量大的表进行分片。
分片可以在代码层做,也可以用中间件来实现。中间件来做的话,要保证分片的管理是高可用。常见的分片中间件有mycat、CORBA。
在cap原理下,目前的分布式系统主流的方案都都是保证最终一致性。
zookeep是用来做协同管理的工具,适合用来做节点选举,选择主节点等。zookeeper是强一致性的,会牺牲一点高可用。
数据存储的时候,为了高可用,一般会采用双写的方式。
评论