利用Zkeeper技术Mysql数据库容灾切换.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Zkeeper技术Mysql数据库容灾切换.doc

利用Zookeeper技术 Mysql容灾切换 ZooKeeper 介绍 简介 ZooKeeper是一个为分布式应用所设计的分布的、开源的协调服 务。分布式的应用可以建立在同步、配置管理、分组和命名等服务的更 高级别的实现的基础之上。ZooKeeper意欲设计一个易于编程的环境, 它的文件系统使用我们所熟悉的目录树结构。ZooKeeper使用Java所编 写,但是支持Java和C两种编程语言。 ZooKeeper总体结构 ZooKeeper集群山一组Server节点组成,这一组Server节点屮存在一个角色为 Leader的节点,其他节点都为Follower。当客户端Client连接到ZooKeeper集群, 并且执行写请求时,这些请求会被发送到Leader节点上,然后Leader节点上数据变 更会同步到集群中其他的Follower节点。 Leader节点在接收到数据变更请求后,首先将变更写入本地磁盘,以作恢复之用。当 所有的写请求持久化到磁盘以后,才会将变更应用到内存中。 ZooKeeper使用了一种自定义的原子消息协议,在消息层的这种原子特性,保证了整 个协调系统中的节点数据或状态的一致性。Follower基于这种消息协议能够保证木地 的ZooKeeper数据与Leader节点同步,然后基于本地的存储来独立地对外提供服务。 当一个Leader节点发生故障失效时,失败故障是快速响应的,消息层负责重新选择 一个Leader,继续作为协调服务集群的中心,处理容户端写请求,并将ZooKeeper 协调系统的数据变更同步(广播)至供他的Follower节点。 Zookccpcr逻辑图 ZooKeeper数据模型 Zookeeper会维护一个具有层次关系的数据结构,它非常类似于一个文件系统 \ /NaaeService /Serverl | /Serverl /Configuration pGroupMembers 1 /McabcrT /Appl /App2 /App3 /SubAppl | /SubApp2 Zookeeper这种数据结构有如下这些特点: 每个子目录项如NameService都被称作为znode,这个znode是被它所在的路径唯一 标识,如 Serverl 这个 znode 的标识为 /NameService/Serverl znode nJ以有子节点、目录,并且每个znode可以存储数据,注意EPHEMERAL类型的 目录节点不能有子节点目录 znode是有版本的,每个znode中存储的数据可以有多个版本,也就是一个访问路径 中可以存储多份数据 znode可以是临时节点,一旦创建这个znode的客户端与服务器失去联系,这个znode 也将自动删除,Zookeeper的客户端和服务器通信采用长连接方式,每个客户端和服务 器通过心跳来保持连接,这个连接状态称为session,如果znode是临时节点,这个 session失效,znode也就删除了 znode的0录名可以自动编号,如Appl已经存在,再创逑的话,将会自动命名为App2 znode可以被监控,包括这个目录节点屮存储的数据的修改,子节点目录的变化等,一 旦变化吋以通知设置监控的客户端,这个是Zookeeper的核心特性,Zookeeper的很 多功能都是基于这个特性实现的,后而在典型的应用场景中会有实例介绍 Zookeeper数据结构 ZooKeeper 特性 ?顺序一致性:按照客户端发送请求的顺序更新数据。 ?原子性:更新要么成功,要么失败,不会出现部分更新。 *单一1性:无论客户端连接哪个server,都会看到同一个视图。 ?可靠性:一旦数据更新成功,将一直保持,直到新的更新。 ?及时性:客户端会在一个确定的时间内得到最新的数据。 ZooKeeper应用场景 ?数据发布与订阅 应用配置集屮到节点上,应用启动时主动获取,并在节点上注册一 个watcher,每次配置更新都会通知到应用。 ?名空间服务 分布式命名服务,创建一个节点后,节点的路径就是全局唯一的, 可以作为全局名称使用。 ?分布式通知/协调 不同的系统都监听同一个节点,一旦有了更新,另一个系统能够收 到通知。 ?分布式锁 Zookccpcr能保证数据的强一致性,用户任何时候都可以相信集群 屮每个节点的数据都是相同的。一个用户创建一个节点作为锁,另一个 用户检测该节点,如果存在,代表别的用户己经锁住,如果不存在,则 可以创建一个节点,代表拥有一个锁。 ?集群管理 每个加入集群的机器都创建一个节点,写入自己的状态。监控父节 点的用户会受到通知,进行相应的处理。离开时删除节点,监控父节点 的用户同样会收到通知。 ZooKeeper应用:Mysql容灾切换 对于多数应用来说,MySQL都是作为最关键

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档