文章目录:
1.什么是Zookeeper?
1.1 Zookeeper工作机制
1.2 Zookeeper特点
1.3 Zookeeper数据结构
1.4 Zookeeper应用场景
1.4.1 统一命名服务
1.4.2 统一配置管理
1.4.3 统一集群管理
1.4.4 服务器动态上下线
1.4.5 软负载均衡
2.Zookeeper下载
3.Linux下配置安装启动
4.Zookeeper配置文件的相关参数
1.什么是Zookeeper?
课件相关资料全部来自
尚硅谷!!!
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。
1.1 Zookeeper工作机制
Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它
负责存储和管理大家都关心的数据
,然后
接受观察者的注册
,一旦这些数据的状态发生变化,
Zookeeper 就将
负责通知已经在
Zookeeper
上注册的那些观察者
做出相应的反应。

1.2 Zookeeper特点

1.3 Zookeeper数据结构
ZooKeeper
数据模型的结构与
Unix
文件系统很类似
,整体上可以看作是一棵树,每个节点称做一个 ZNode
。每一个
ZNode
默认能够存储
1MB
的数据,每个
ZNode
都可以
通过其路径唯一标识。

1.4 Zookeeper应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
1.4.1 统一命名服务

1.4.2 统一配置管理

1.4.3 统一集群管理

1.4.4 服务器动态上下线

1.4.5 软负载均衡

2.Zookeeper下载
官网地址:https://zookeeper.apache.org/



按照上面截图顺序来即可,下载完之后,下面进行Linux下的安装。
3.Linux下配置安装启动
首先来到 opt 目录下,新建一个 software,将刚刚下载好的压缩包上传到这个目录下。然后 tar -zxvf 解压即可,这里解压到 opt/module 这个目录中,如果没有需要 mkdir 新建。

解压完成之后,这个名字太长,可以考虑 mv 对它重命名,这里一定要确保Linux下已经安装好了 jdk。
进入zookeeper目录中,可以看到这其中也是类似的 bin(可执行命令)、conf(配置文件)、docs(文档)、lib(jar包)。

下面我们进到 conf 目录下,对 zoo_sample.cfg 这个核心配置文件进行重命名、修改相关参数。?
下面的第二张截图中,是回退到zookeeper目录下,创建一个 zkData 目录,专门用来存放 zookeeper 相关的数据节点信息。


创建好 zkData 之后,我们将它对应的文件路径拷贝,将 zoo.cfg 配置文件中的 dataDir 的值改为 zkData 的文件路径。?

配置文件修改完成之后,下面就可以启动 zookeeper 了,这里要先启动服务端、再启动客户端。?我这里是位于zookeeper的bin目录下,
启动服务端命令:
./zkServer.sh start?
启动客户端命令:
./zkCli.sh
查看进程是否启动:??
ps -ef | grep zookeeper
或
jps
查看zookeeper状态
./zkServer.sh status
退出zookeeper客户端
quit
停止zookeeper服务
./zkServer.sh stop
或
根据进程端口号直接kill -9


4.Zookeeper配置文件的相关参数
在下面这张图中,对应的是 zoo.cfg 配置文件,这其中有五个参数,含义如下:👇👇👇

1
)
tickTime = 2000
:通信心跳时间,
Zookeeper
服务器与客户端心跳时间,单位毫秒

2)initLimit = 10:LF初始通信时限 。这里默认的10代表的是10次心跳时间,也即 10*2000ms = 20000ms = 20s,如果你在初始化的时候,20s之内LF之间还没有建立连接,那么zookeeper就认为这次通信失败了。

3)syncLimit = 5:LF同步通信时限 ?。在LF经历过初始化之后,再进行通信连接时,就会采取这个值,默认的5代表5次心跳时间,也即 5*2000ms = 10000ms = 10s。

4
)
dataDir
:
保存
Zookeeper
中的数据? (注意:默认的tmp
目录,容易被
Linux
系统定期删除,所以一般不用默认的
tmp
目录)
5
)
clientPort = 2181
:客户端连接端口,通常不做修改。
|