架构师训练营 第六周 学习总结

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

分布式数据库

MySQL

传统的关系型数据库是通过复制来做到性能伸缩和高可用的。

  • MySQL 主从复制

  1. 主服务器将所有数据和结构更改记录到二进制日志中。

  2. 从属服务器从主服务器请求该二进制日志并在本地应用其内容。即通过把主库的binlog传送到从库,从新解析应用到从库。

  • MySQL 一主多从

  1. 分摊负载

  2. 专机专用

  3. 便于冷备

  4. 高可用

  • 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与之同步



用户头像

亮灯

关注

还未添加个人签名 2018.02.14 加入

还未添加个人简介

评论

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