架构师训练营 第六周 学习总结
分布式数据库
MySQL
传统的关系型数据库是通过复制来做到性能伸缩和高可用的。
MySQL 主从复制
主服务器将所有数据和结构更改记录到二进制日志中。
从属服务器从主服务器请求该二进制日志并在本地应用其内容。即通过把主库的binlog传送到从库,从新解析应用到从库。
MySQL 一主多从
分摊负载
专机专用
便于冷备
高可用
MySQL 主主复制
提高写可用性,不支持写并发
数据分片
分片的原因:降低读写压力
1、应用程序硬编码
2、分片映射表
这两种用的都不多,因为都需要应用程序做额外的操作,带来不必要的复杂性。
分布式数据库中间件,可以解决上述问题,比如MyCat
优点:对应用透明
具体的工作原理:sql解析,路由规则(通过配置),执行
ZooKeeper
工作原理
Zookeeper 的核心是原子广播,这个机制保证了各个Server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和 leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和Server具有相同的系统状态。
Zookeeper 下 Server工作状态
LOOKING:当前Server不知道leader是谁,正在搜寻
LEADING:当前Server即为选举出来的leader
FOLLOWING:leader已经选举出来,当前Server与之同步
评论