栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Zookeeper-1.0 简介及节点介绍

Zookeeper-1.0 简介及节点介绍

zookeeper系列1

这里介绍zookeeper系列,该篇幅是zookeeper的第一篇文章,后续会把zookeeper的相关系列文章全部写完,方便大家了解和掌握zookeeper


文章目录

zookeeper系列1zookeeper是什么?zookeeper能干什么?一、zookeeper安装-单机版二、zk的目录结构及节点

1.目录结构

zk的命令使用 2.zk各个节点介绍

**1、znode节点****2、NameService 命名服务****3、configuration 配置管理****4、GroupMembers 集群管理** 3.zk中的角色介绍 总结


zookeeper是什么?

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态


zookeeper能干什么?

相信很多小伙伴,学习zk最主要的是想知道zk能干什么,怎么做。能用在什么地方,对业务有什么帮助。

(1) 数据发布/订阅

(2) 负载均衡

(3) 命名服务

(4) 分布式协调/通知

(5) 集群管理

(6) Master 选举

(7) 分布式锁

(8) 分布式队列数据发布/订阅介绍数据发布/订阅系统,即所谓的配置中心,顾名思义就是发布者发布数据供订阅者进行数据订阅。 目的动态获取数据(配置信息)实现数据(配置信息)的集中式管理和数据的动态更新设计模式 Push 模式 Pull 模式


一、zookeeper安装-单机版

单机:

http://zookeeper.apache.org/releases.html

下载安装包

拷贝安装包到centos7.4的/home/local/

cd /home/local/zookeeper.x

conf目录下提供了配置的样例zoo_sample.cfg,要将zk运行起来,需要将其名称修改为zoo.cfg。

vi zoo.cfg

tickTime时长单位为毫秒,为zk使用的基本时间度量单位。例如:1 * tickTime是客户端与zk服务端的心跳时间。

  	 2 * tickTime是客户端会话的超时时间。tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。
clientPortzk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。dataDir无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。

./zkServer.sh start-foreground 即可

二、zk的目录结构及节点 1.目录结构

文件目录结构如下

每个目录项如 NameService 都被称作为 znode(目录节点),znode可以自由的删除添加。 zk的命令使用
    链接zk(当启动 ZooKeeper 服务成功之后,输入下述命令。连接到 ZooKeeper 服务:zkCli.sh –server 127.0.0.1:2181)输入help可以看见zk的命令,每一条命令后,后面的数位会加一,这块后续我会为大家详细讲解
    输入:ls / 可以查看当前服务中包含的内容。使用: create /xxoo “” 后面可带value 创建一个新的 znode 。
    我们可以用get/set对节点取/设置值
    可以使用delete /xxoo 删除节点。
2.zk各个节点介绍 1、znode节点
有四种类型的znode:

1、PERSISTENT-持久化目录节点

客户端与zookeeper断开连接后,该节点依旧存在

2、 PERSISTENT_SEQUENTIAL-持久化顺序编号目录节点

客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号

3、EPHEMERAL-临时目录节点

客户端与zookeeper断开连接后,该节点被删除

4、EPHEMERAL_SEQUENTIAL-临时顺序编号目录节点

客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号
2、NameService 命名服务
这个似乎最简单,在zookeeper的文件系统里创建一个目录,即有唯一的path。
在我们使用tborg无法确定上游程序的部署机器时即可与下游程序约定好path,通过path即能互相探索发现

这个主要是作为分布式命名服务,通过调用zk的create node api,能够很容易创建一个全局唯一的path,
这个path就可以作为一个名称。
3、configuration 配置管理
现在把这些配置全部放到zookeeper上去,保存在 Zookeeper 的某个目录节点中,
然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,
每个应用程序就会收到 Zookeeper 的通知,然后从 Zookeeper 获取新的配置信息应用到系统中就好。
4、GroupMembers 集群管理
所谓集群管理无在乎两点:是否有机器退出和加入、选举master。

对于第一点,所有机器约定在父目录GroupMembers下创建临时目录节点,然后监听父目录节点的子节点变化消息。
一旦有机器挂掉,该机器与 zookeeper的连接断开,其所创建的临时目录节点被删除,所有其他机器都收到通知:
某个兄弟目录被删除,于是,所有人都知道了。新机器加入也是类似,所有机器收到通知:新兄弟目录加入,highcount又有了。

对于第二点,所有机器创建临时顺序编号目录节点,通过master选举算法选举出来。

3.zk中的角色介绍

要学好zk就必须要先了解zk中的基础部分,例如zk的节点,zk的角色,zk如何选举leader,zk中使用的什么算法。这些你了解清楚了后,对于你再回过头去看你的项目,项目中使用的分布式组建,都会有本质的提高及理解。下面先来看看zk中有哪些角色。

    client:分布式中的一个节点,访问服务器的配置信息,周期性向server发送心跳包,server向client回应确认,如果client没有收到回应,则重定向到另一个serverserver:zookeeper中的一个节点,为client提供所需的服务,给client回应信息表明自己是存活的leader:连接任何一个节点,如果节点出现故障,leader自动修复,在service启动时完成leader的选举follower:听从leader的指令,完成选举工作
总结

zookeeper是一款非常强大分布式协调服务,学习zk后会带来很多设计上的思维碰撞。本来想多写点的,把zk的watch/leader选举给写完,但是想想,还是放到下篇文章介绍,如果噼里啪啦写一大片,过犹而不及,学习本来就是个渐变的过程。只有了解清楚了,知道清楚了,你就可以拍着胸脯保证学完了,学通了可以去使用学习下一个组件了。

**下一篇介绍zk的watch和leader选举

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/753493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号