内容简介:一、 为什么需要zookeeper 大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等) 大部分应用需要开发私有的协调程序,缺乏一个通用的机制
一、 为什么需要zookeeper
大部分分布式应用需要一个主控、协调器或控制器来管理物理分布的子进程(如资源、任务分配等)
大部分应用需要开发私有的协调程序,缺乏一个通用的机制
协调程序的反复编写浪费,且难以形成通用、伸缩性好的协调器
zookeeper可以提供通用的分布式锁服务,用以协调分布式应用,它是一个开源的分布式应用协调服务
分布式:多台计算机、它们之间通过网络进行通信、它们有共同的目标
协调服务
二、 zookeeper简介
-
zookeeper是什么
zookeeper是Google的Chubby一个开源的实现,是hadoop的分布式协调服务
它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等
将zookeeper翻译过来,是动物园管理员,可以想象,它是来管理动物的(大象、蜜蜂、小猪)
它的架构如下图:
-
zookeeper能帮我们做什么
分布式系统协调:多个节点一起完成一个动作
集群成员管理
分布式锁
选主
分布式事务
发布/订阅(发布者将数据发布到zk的一个或一系列节点,订阅者进行数据订阅,当有数据变化时,可以及时得到数据的变化通知)
负载均衡
3. zookeeper的特性
zookeeper是简单的
zookeeper是富有表现力的
zookeeper是高可用的
zookeeper是松耦合的交互方式
zookeeper是一个资源库
4. zookeeper的数据模型
层次化的目录结构,命名符合常规文件系统规范
每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识
znode中的数据可以有多个版本,比如某一个路径下存有多个数据版本,那么查询这个路径下的数据就需要带上版本
节点不支持部分读写,而是一次性完整读写
其中每个单独的长方形我们称之为一个节点(znode),节点(znode)的全名称是整个目录名,比如Seerver1节点的全节点名称是/NameService/Server1
5. zookeeper的下载地址
http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.9/
三、 zookeeper的安装
- 手动安装(单机、伪分布式、完全分布式)
解压,创建一个data目录,一个log目录
在data目录创建myid文件,server1写1
复制配置文件为zoo.cfg,编辑配置文件,需要修改的位置如下:
dataDir=/xxx/data
dataLogDir=/xxx/log
server.1=主机名:2888:3888
配置环境变量
zkServer.sh start即可开启 - cloudera manager自动化部署
四、 zookeeper基本概念 - 集群角色
Leader客户端提供读和写服
Follower提供读服,所有写服都需要转交给Leader角色,参与选举
Observer提供读服,参选举过程,一般是了增强zk集群的读请求并发能力 - 会话
zk的客户端与zk的服端之间的连接
通过心跳检测保持客户端连接的存活
接收来自服端的watch事件通知
设置超时时间 - zookeeper节点类型
persistent:persistent节点不和特定的session绑定,不会随着创建该节点的session的结束而消失,而是一直存在,除非该节点被显式删除
ephemeral:ephemeral节点是临时性的,如果创建该节点的session结束了,该节点就会被自动删除,ephemeral节点不能拥有子节点,虽然ephemeral节点与创建它的session绑定,但只要该该节点没有被删除,其他session就可以读写该节点中关联的数据,使用-e参数指定创建ephemeral节点
sequence:严格的说,sequence并非节点类型中的一种,sequence节点既可以是ephemeral的,也可以是persistent的,创建sequence节点时,ZooKeeper server会在指定的节点名称后加上一个数字序列,该数字序列是递增的,因此可以多次创建相同的sequence节点,而得到不同的节点,使用-s参数指定创建sequence节点 - 版本
Version:当前Znode的版本
Cversion:当前Znode的子节点的版本
Aversion:当前Znode的ACL(访问控制)版本 - watcher
作用于Znode节点
watcher设置后,一旦触发一次就会失效,如果需要一直监听,就需要再次注册
多种事件通知:数据更新,子节点状态等
学院 Go 语言视频主页
https://edu.csdn.net/lecturer/1928扫码获取海量视频及源码 QQ群:721929980
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 分布式锁原理——redis分布式锁,zookeeper分布式锁
- 漫谈分布式系统(十):初探分布式事务
- 漫谈分布式系统(十):初探分布式事务
- 漫谈分布式系统(二十三):分布式数据仓库
- 分布式系统中的BASE 和 ACID、幂等性、分布式锁、分布式事务与异步消息处理
- 分布式ID系列(4)——Redis集群实现的分布式ID适合做分布式ID吗
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Mastering Flask
Jack Stouffer / Packt Publishing / 2015-9-30 / USD 49.99
Work with scalable Flask application structures to create complex web apps Discover the most powerful Flask extensions and learn how to create one Deploy your application to real-world platforms......一起来看看 《Mastering Flask》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
html转js在线工具
html转js在线工具