一篇文章带你入门Zookeeper

  • 时间:
  • 浏览:0
  • 来源:5分快乐8_5分快乐8官网

如上,你大致应该了解zookeeper是个有哪些东西,相当于能做些有哪些了,亲们马上来学习下zookeeper的安装及使用,并开发有有另二个 小线程池池来实现zookeeper你這個分布式配置管理的功能。



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

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

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

Zookeeper维护有有另二个 相似文件系统的数据社会形态:

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

zhangsan

配置已修改,新值为:zhangsan123456

Zookeeper使用

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

PERSISTENT-持久化目录节点

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



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

有四种 类型的znode:



使用客户端命令操作zookeeper

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

Zookeeper能做有哪些

Step2:下载并解压zookeeper



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

Step8:检测集群请况,才能不到直接用命令“zkCli.sh -server IP:PORT”连接zookeeper服务端检测:

使用Java API操作zookeeper时要引用下面的包

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

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

Step4:启动zookeeper

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

Zookeeper是有哪些

使用Java API操作zookeeper

下面亲们来实现里边说的分布式配置中心:

2、 监听通知机制

配置说明

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

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



本例搭建的是伪集群模式,即一台机器上启动有有另二个 zookeeper实例组成集群,真正的集群模式无非要是实例IP地址不同,搭建法律最好的办法没人 区别

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

假设亲们的线程池池是分布式部署在多台机器上,可能性亲们要改变线程池池的配置文件,时要逐台机器去修改,非常麻烦,现在把有有哪些配置全版插进zookeeper上去,保发生 zookeeper 的某个目录节点中,有刚刚所有相关应用线程池池对你這個目录节点进行监听,一旦配置信息发生变化,每个应用线程池池就会收到 zookeeper 的通知,有刚刚从 zookeeper 获取新的配置信息应用到系统中。

Step6:标识Server ID

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

4、下面亲们运行 get 命令来确认第二步中所创建的 znode 算是 蕴藏亲们所创建的字符串:

1、在zookeeper里增加有有另二个 目录节点,有刚刚把配置信息存储在里边

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

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

Step7:启动有有另二个 zookeeper实例

EPHEMERAL-临时目录节点

Zookeeper单机模式安装

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

Zookeeper集群模式安装

就没人 简单,下面亲们看看Zookeeper能做点有哪些呢?

Step3:重命名 zoo_sample.cfg文件

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

tickTime:你這個时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也要是每个 tickTime 时间就会发送有有另二个 心跳。

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

syncLimit:你這個配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不到超过几条个 tickTime 的时间长度,总的时间长度要是 5*60 0=10秒

dataDir:顾名思义要是 Zookeeper 保存数据的目录,默认请况下,Zookeeper 将写数据的日志文件也保发生你這個目录里。

clientPort:你這個端口要是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听你這個端口,接受客户端的访问请求。

server.A=B:C:D:其中 A 是有有另二个 数字,表示你這個是第几号服务器;B 是你這個服务器的 ip 地址;C 表示的是你這個服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,时要有有另二个 端口来重新进行选举,选出有有另二个 新的 Leader,而你這個端口要是用来执行选举时服务器相互通信的端口。可能性是伪集群的配置法律最好的办法,可能性 B 全是一样,好多好多 不同的 Zookeeper 实例通信端口号不到一样,好多好多 要给它们分配不同的端口号。

6、下面亲们将刚才创建的 znode 删除

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

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

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

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

Step2:下载并解压zookeeper

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

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



官方文档上没人 解释zookeeper,它是有有另二个 分布式服务框架,是Apache Hadoop 的有有另二个 子项目,它主要是用来除理分布式应用中突然遇到的其他数据管理大大问题 ,如:统一命名服务、请况同步服务、集群管理、分布式应用配置项的管理等。

1、 文件系统