文章目录:
1.什么是Zookeeper?
课件相关资料全部来自尚硅谷!!!
Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目,它是一个为分布式应用提供一致性服务的软件,分布式应用程序可以基于 Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
1.1 Zookeeper工作机制
Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper 就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。
1.2 Zookeeper特点
1.3 Zookeeper数据结构
ZooKeeper 数据模型的结构与Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储1MB 的数据,每个 ZNode 都可以通过其路径唯一标识。
1.4 Zookeeper应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
1.4.5 软负载均衡
2.Zookeeper下载
按照上面截图顺序来即可,下载完之后,下面进行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:客户端连接端口,通常不做修改。