系列一:初识Zookeeper

看了就要关注我,喵呜~

系列一:初识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之运维有道

/有问题给公众号留言/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181021G130A200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券