看了就要关注我,喵呜~
系列一:初识Zookeeper
话说Zookeeper实质是一个开源的分布式应用协调一致性的组件。为啥叫这个名字呢?老外一贯喜欢用动物作为吉祥物,在程序猿界也不例外,Hadoop是一头大象;Hive是一个蜂巢;Pig是一头聪明的猪;tomcat是一只小猫咪……负责分布式协调工作的角色就叫ZooKeeper(动物管理员)
在分布式系统中,状态一致性非常关键,缺乏一致性管理的分布式是混乱不堪和无法使用的。Zookeper是分布式系统中的协调系统,可提供的服务主要有:配置服务、命名空间、分布式锁等。Hadoop、Storm、消息中间件、RPC服务框架、分布式数据库同步系统,配置中心、任务控制器等都是Zookeeper的典型应用场景。
基础概念:部署安装
Zookeeper有多种部署方式。单机部署和集群部署。
单机部署:只需要将下载的程序包解压,重命名zoo.cfg配置就可以直接运行,该做法只适合在开发测试时快速搭建。
集群部署:Zookeeper自身的分布式部署方案,可增强系统的高可用性。由于zookeeper自身选举算法的特性(后续章节讲解),zookeeper一般集群部署都是奇数台,允许半数以下的服务器宕机而不影响集群的对外服务能力。一般线上环境都要求集群方式部署,且尽量避免过半集群几点部署在同一台物理设备。
基础概念:数据存储
Zookeeper中数据是以树形结构存储的,有点像windows的文件系统结构,有文件夹、文件,文件夹中可包含子文件夹。但是与操作系统的文件系统不同的是,zookeeper中的数据节点(Znode)本身可以存储一些信息。
数据节点引出了存储的两个重要概念:临时节点,永久节点。永久节点:客户端第一次创建后,节点永远存在,不会主动删除。临时节点:客户端创建后,节点会同保持和客户端相同的生命周期,客户端下线后对应创建的数据节点也会被同步删除掉。
实践:许多RPC框架及任务调度框架,利用了zookeeper临时节点的特征,始终能保证调度到可用的服务器,那些异常下线的服务器是不会被分配作业的。
由于树状图中节点路径唯一性。
基本概念:Watcher机制
分布式系统中多个订阅者同时监听某一主题对象,这个主题对象在自身状态发生变化时会通知所有的订阅者,订阅者能自动更新最新状态。Zookeeper通过watcher机制实现了订阅、通知功能。Watcher机制在分布式系统中的典型应用有配置管理和服务发现、注册。
Zookeeper专题系列
1
Zookeper之初识ZK
2
Zookeeper之数据结构
3
Zookeeper之使用场景
4
Zookeeper之选举算法
5
Zookeeper之运维有道
/有问题给公众号留言/
领取专属 10元无门槛券
私享最新 技术干货