利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf

利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf

ID:57922368

大小:275.80 KB

页数:6页

时间:2020-04-10

利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf_第1页
利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf_第2页
利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf_第3页
利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf_第4页
利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf_第5页
资源描述:

《利用ZOOKEEPER技术 MYSQL数据库容灾切换.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、利用Zookeeper技术Mysql容灾切换一、ZooKeeper介绍1.简介ZooKeeper是一个为分布式应用所设计的分布的、开源的协调服务。分布式的应用可以建立在同步、配置管理、分组和命名等服务的更高级别的实现的基础之上。ZooKeeper意欲设计一个易于编程的环境,它的文件系统使用我们所熟悉的目录树结构。ZooKeeper使用Java所编写,但是支持Java和C两种编程语言。2.ZooKeeper总体结构3.ZooKeeper集群由一组Server节点组成,这一组Server节点中存在一个角色为Leader的节点,

2、其他节点都为Follower。当客户端Client连接到ZooKeeper集群,并且执行写请求时,这些请求会被发送到Leader节点上,然后Leader节点上数据变更会同步到集群中其他的Follower节点。4.Leader节点在接收到数据变更请求后,首先将变更写入本地磁盘,以作恢复之用。当所有的写请求持久化到磁盘以后,才会将变更应用到内存中。5.ZooKeeper使用了一种自定义的原子消息协议,在消息层的这种原子特性,保证了整个协调系统中的节点数据或状态的一致性。Follower基于这种消息协议能够保证本地的ZooKee

3、per数据与Leader节点同步,然后基于本地的存储来独立地对外提供服务。6.当一个Leader节点发生故障失效时,失败故障是快速响应的,消息层负责重新选择一个Leader,继续作为协调服务集群的中心,处理客户端写请求,并将ZooKeeper协调系统的数据变更同步(广播)到其他的Follower节点。Zookeeper逻辑图7.ZooKeeper数据模型Zookeeper会维护一个具有层次关系的数据结构,它非常类似于一个文件系统Zookeeper这种数据结构有如下这些特点:每个子目录项如NameService都被称作为z

4、node,这个znode是被它所在的路径唯一标识,如Server1这个znode的标识为/NameService/Server1znode可以有子节点目录,并且每个znode可以存储数据,注意EPHEMERAL类型的目录节点不能有子节点目录znode是有版本的,每个znode中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据znode可以是临时节点,一旦创建这个znode的客户端与服务器失去联系,这个znode也将自动删除,Zookeeper的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳

5、来保持连接,这个连接状态称为session,如果znode是临时节点,这个session失效,znode也就删除了znode的目录名可以自动编号,如App1已经存在,再创建的话,将会自动命名为App2znode可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是Zookeeper的核心特性,Zookeeper的很多功能都是基于这个特性实现的,后面在典型的应用场景中会有实例介绍Zookeeper数据结构8.ZooKeeper特性顺序一致性:按照客户端发送请求的顺序

6、更新数据。原子性:更新要么成功,要么失败,不会出现部分更新。单一性:无论客户端连接哪个server,都会看到同一个视图。可靠性:一旦数据更新成功,将一直保持,直到新的更新。及时性:客户端会在一个确定的时间内得到最新的数据。9.ZooKeeper应用场景数据发布与订阅应用配置集中到节点上,应用启动时主动获取,并在节点上注册一个watcher,每次配置更新都会通知到应用。名空间服务分布式命名服务,创建一个节点后,节点的路径就是全局唯一的,可以作为全局名称使用。分布式通知/协调不同的系统都监听同一个节点,一旦有了更

7、新,另一个系统能够收到通知。分布式锁Zookeeper能保证数据的强一致性,用户任何时候都可以相信集群中每个节点的数据都是相同的。一个用户创建一个节点作为锁,另一个用户检测该节点,如果存在,代表别的用户已经锁住,如果不存在,则可以创建一个节点,代表拥有一个锁。集群管理每个加入集群的机器都创建一个节点,写入自己的状态。监控父节点的用户会受到通知,进行相应的处理。离开时删除节点,监控父节点的用户同样会收到通知。二、ZooKeeper应用:Mysql容灾切换对于多数应用来说,MySQL都是作为最关键的数据存储中心的,所以,如

8、何让MySQL提供HA服务,是我们不得不面对的一个问题。当master当机的时候,我们如何保证数据尽可能的不丢失,如何保证快速的获知master当机并进行相应的故障转移处理,都是需要我们好好思考的。要保证MySQL数据不丢失,replication是一个很好的解决方案,而MySQL也提供了一套强大的re

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。