从 paxos 到 zookeeper 总结(引言)

引言

ZooKeeper是什么呢?简单的说,它就是一个文件系统,我们可以使用客户端在ZooKeeper服务器创建数据节点,节点有自己的,节点下也可以创建子节点,类似一个形结构。我们还可以对节点做增删改查操作如下图所示,这看起来和MySQL数据库的CRUD操作很像,只不过ZooKeeper操作的是数据节点,而MySQL操作的是数据库记录而已。
在这里插入图片描述

从上图看,我们可以在根目录下创建create)节点/z-book,它的值是123,也可以把它的值更新set)成132,还可以在它下面创建子节点page1,page2,还可以读取get)子节点/zook/page1的值是789,还可以删除delete)之前插入的节点/z-book2,总的来说就是节点的增删改查

但是ZooKeeper只有增删改查节点这么简单么,肯定不是。首先ZooKeepr是可以集群的,为什么集群呢?当然是为了可以对外提供更高性能的服务,而且我在一台机器上增删改后的数据在其它机器上最终是可以到的——这是ZooKeeper内部实现的,这和MySQL的主从复制又有点像,ZooKeeper是没有固定主库的(ZooKeer中叫Leader节点,由选举产生),Leader宕机之后,只要集群中超过半数机器可以工作,集群会选举出新的Leader并正常对外提供服务。像这样分布式环境下,多个机器持久化的同一份数据通常被称作数据副本,多个副本数据保持一致的特性叫分布式数据一致性,一致性和可用性、分区容错性的关系有CAP、BASE等相关的理论,这些我们会在第一篇分布式架构详细介绍,关于ZooKeeper具体如何实现的分布式数据一致性我们会在第四篇ZAB协议做详细介绍。当然ZooKeepr主要也不是做数据存储使用的,这里拿MySQL只是做类比说明。

But分布式数据一致性服务是ZooKeeper内部封装,作为外部服务是无需关注的,那ZooKeepr还有什么其它特性吗?那就是Watcher监听机制,既我们不但可以用客户端在ZooKeeper服务器增删改查节点还可以向服务器对这些节点的变动注册监听器,一旦节点状态发生了变动(比如节点被更新或者被删除),服务器就会发送通知给当初前来注册的客户端。这个机制也就是ZooKeeper被用来实现分布式协调服务的重要特性,我们会在第三篇Watcher—数据变更的通知中介绍。

以上就是关于ZooKeepr整体的介绍,核心内容是ZooKeeper内部的分布式数据一致性解决方案和对外提供的分布式协调服务,同时也提及了这篇总结的大体内容。这篇总结是对《从Paxos到ZooKeeper分布式一致性原理与实践》一书的归纳整理,绝大内容大部分来自书里,自己对部分内容做了标注和图解,总共分五篇,结构与原书略有不同,最后一篇是总结了一些ZooKeeper常见的面试题,目录如下。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值