一篇文章带你入门Zookeeper

  • 时间:
  • 浏览:0

修改完成后,大伙看见有另4个系统线程池池后台都及时收到了大伙监听的目录节点数据变更后的值,如下所示:

创建有另4个文件夹/tmp/zookeeper-1,/tmp/zookeeper-2,/tmp/zookeeper-2,在每个目录中创建文件myid 文件,写入当前实例的server id,即1.2.3

Step5:检测算是 成功启动,用zookeeper客户端连接下服务端

tickTime:这名 时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也可是我 每个 tickTime 时间就会发送有另4个心跳。

initLimit:这名 配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端全是用户连接 Zookeeper 服务器的客户端,可是我 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受几次个心跳时间间隔数。当原困分析分析超过 10个心跳的时间(也可是我 tickTime)长度后 Zookeeper 服务器还没得收到客户端的返回信息,没得表明这名 客户端连接失败。总的时间长度可是我 10*2000=20 秒

syncLimit:这名 配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长都不能 超过多少个 tickTime 的时间长度,总的时间长度可是我 5*2000=10秒

dataDir:顾名思义可是我 Zookeeper 保存数据的目录,默认情况汇报下,Zookeeper 将写数据的日志文件也保位于这名 目录里。

clientPort:这名 端口可是我 客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这名 端口,接受客户端的访问请求。

server.A=B:C:D:其中 A 是有另4个数字,表示这名 是第几号服务器;B 是这名 服务器的 ip 地址;C 表示的是这名 服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,都不里能 有另4个端口来重新进行选举,选出有另4个新的 Leader,而这名 端口可是我 用来执行选举时服务器相互通信的端口。原困分析分析是伪集群的配置土法律法律依据,原困分析分析 B 全是一样,这名 这名 不同的 Zookeeper 实例通信端口号都不能 一样,这名 这名 要给它们分配不同的端口号。



1、使用 ls 命令来查看当前 ZooKeeper 中所中有 的内容

Zookeeper集群模式安装

6、下面大伙将刚才创建的 znode 删除

2、 监听通知机制

Zookeeper使用

Zookeeper维护有另4个例如文件系统的数据组织结构:

至此,大伙对zookeeper就算有了有另4个入门的了解,当然zookeeper远比大伙这里描述的功能多,比如用zookeeper实现集群管理,分布式锁,分布式队列,zookeeper集群leader选举等等。

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

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

假设大伙的系统线程池池是分布式部署在多台机器上,原困分析分析大伙要改变系统线程池池的配置文件,都不里能 逐台机器去修改,非常麻烦,现在把哪几次配置删改插进zookeeper上去,保位于 zookeeper 的某个目录节点中,如果所有相关应用系统线程池池对这名 目录节点进行监听,一旦配置信息位于变化,每个应用系统线程池池就会收到 zookeeper 的通知,如果从 zookeeper 获取新的配置信息应用到系统中。

Step6:标识Server ID

每个子目录项如 NameService 都被称作为 znode(目录节点),和文件系统一样,大伙不能自由的增加、删除znode,在有另4个znode下增加、删除子znode,唯一的不同在于znode是都不里能 存储数据的。

下面大伙来实现里面说的分布式配置中心:

使用Java API操作zookeeper都不里能 引用下面的包

Zookeeper是哪几次

Step7:启动有另4个zookeeper实例

Step3:重命名配置文件zoo_sample.cfg

1、在zookeeper里增加有另4个目录节点,如果把配置信息存储在里面

有并算是类型的znode:

2、创建有另4个新的 znode ,使用 create /zkPro myData

Step3:重命名 zoo_sample.cfg文件

3、大伙在zookeeper里修改下目录节点/username下的数据

客户端注册监听它关心的目录节点,当目录节点位于变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

PERSISTENT-持久化目录节点

Step2:下载并解压zookeeper

如上,你大致应该了解zookeeper是个哪几次东西,大概 能做些哪几次了,大伙马上来学习下zookeeper的安装及使用,并开发有另4个小系统线程池池来实现zookeeper这名 分布式配置管理的功能。



官方文档上没得解释zookeeper,它是有另4个分布式服务框架,是Apache Hadoop 的有另4个子项目,它主可是我 用来除理分布式应用中有 另4个劲遇到的这名 数据管理大间题,如:统一命名服务、情况汇报同步服务、集群管理、分布式应用配置项的管理等。

zhangsan

配置已修改,新值为:zhangsan123456

有另4个系统线程池池启动后都正确的读取到了zookeeper的/username目录节点下的数据'zhangsan'

Zookeeper能做哪几次

里面的解释很糙抽象,简单来说zookeeper=文件系统+监听通知机制。

5、下面大伙通过 set 命令来对 zk 所关联的字符串进行设置:

4、下面大伙运行 get 命令来确认第二步中所创建的 znode 算是 中有 大伙所创建的字符串:

1、 文件系统

Step8:检测集群情况汇报,也都不里能 直接用命令“zkCli.sh -server IP:PORT”连接zookeeper服务端检测:



zookeeper功能非常强大,都不里能 实现诸如分布式应用配置管理、统一命名服务、情况汇报同步服务、集群管理等功能,大伙这里拿比较简单的分布式应用配置管理为例来说明。



本例搭建的是伪集群模式,即一台机器上启动有另4个zookeeper实例组成集群,真正的集群模式无非可是我 实例IP地址不同,搭建土法律法律依据没得区别

Step4:启动zookeeper

Step2:下载并解压zookeeper

Zookeeper单机模式安装

客户端与zookeeper断开连接后,该节点被删除,可是我 Zookeeper给该节点名称进行顺序编号

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



使用客户端命令操作zookeeper

Step1:配置JAVA环境,检验环境:java -version

EPHEMERAL-临时目录节点

客户端与zookeeper断开连接后,该节点依旧位于,可是我 Zookeeper给该节点名称进行顺序编号

Step5:再从zoo-1.cfg克隆好友有另4个配置文件zoo-2.cfg和zoo-3.cfg,只需修改dataDir和clientPort不同即可

就没得简单,下面大伙看看Zookeeper能做点哪几次呢?

使用Java API操作zookeeper



Step1:配置JAVA环境,检验环境:java -version

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

Step4:修改配置文件zoo-1.cfg,原配置文件里有的,修改成下面的值,没得的则加带

配置说明

3、再次使用 ls 命令来查看现在 zookeeper 中所中有 的内容:

2、启动有另4个zookeeper客户端系统线程池池,代码如下所示