利用Zookeeper技术
Mysql容灾切换
一、ZooKeeper介绍
1.简介
ZooKeeper 是一个为分布式应用所设计的分布的、开源的协调服务。分布式的应用可以建立在同步、配置管理、分组和命名等服务的更
高级别的实现的基础之上。ZooKeeper 意欲设计一个易于编程的环境,它的文件系统使用我们所熟悉的目录树结构。ZooKeeper使用Java所编
写,但是支持Java和C两种编程语言。
2.ZooKeeper总体结构
3.ZooKeeper集群由一组Server节点组成,这一组Server节点中存在一个角色为
Leader的节点,其他节点都为Follower。当客户端Client连接到ZooKeeper集群,
并且执行写请求时,这些请求会被发送到Leader节点上,然后Leader节点上数据变
更会同步到集群中其他的Follower节点。
4.Leader节点在接收到数据变更请求后,首先将变更写入本地磁盘,以作恢复之用。当
所有的写请求持久化到磁盘以后,才会将变更应用到内存中。
5.ZooKeeper使用了一种自定义的原子消息协议,在消息层的这种原子特性,保证了整
个协调系统中的节点数据或状态的一致性。Follower基于这种消息协议能够保证本地
的ZooKeeper数据与Leader节点同步,然后基于本地的存储来独立地对外提供服务。
6.当一个Leader节点发生故障失效时,失败故障是快速响应的,消息层负责重新选择
一个Leader,继续作为协调服务集群的中心,处理客户端写请求,并将ZooKeeper
协调系统的数据变更同步(广播)到其他的Follower节点。
Zookeeper逻辑图