SpringCloud----zookeeper介绍与安装

2021-11-15 15:48:06 浏览数 (1)

zookeeper

  • 概述
  • 工作机制
  • zookeeper特点
  • 数据结构
  • 统一命名服务
  • 统一配置管理
  • 统一集群管理
  • 服务器动态上下线
  • 软负载均衡
  • zookeeper下载
    • 下载 Linux 环境安装的 tar 包
  • Zookeeper 本地安装
    • (1)安装 JDK
    • (2)拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下
    • (3)解压到指定目录
    • (4)修改名称
    • 配置文件修改
      • 采坑实录: 错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain
      • zookeeper 启动时一直报 Starting zookeeper ... FAILED TO START
    • 操作 Zookeeper
      • 1.启动 Zookeeper服务端
      • 2.查看状态
      • 3.启动zookeeper客户端
      • 4.退出客户端
      • 5.停止 Zookeeper
  • 配置参数解读
    • 1)tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
    • 2)initLimit = 10:LF初始通信时限
    • 3)syncLimit = 5:LF同步通信时限
    • 4)dataDir:保存Zookeeper中的数据
    • 5)clientPort = 2181:客户端连接端口,通常不做修改。

概述

Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。


工作机制


zookeeper特点

  • Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
  • 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器
  • 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的
  • 更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
  • 数据更新原子性,一次数据更新要么成功,要么失败。
  • 实时性,在一定时间范围内,Client能读到最新数据

数据结构


统一命名服务

Zookeeper可以把多台服务器的ip地址映射到同一个域名上


统一配置管理


统一集群管理


服务器动态上下线


软负载均衡


zookeeper下载

官网

zookeeper 3.5.7版本是较稳定版本


下载 Linux 环境安装的 tar 包


Zookeeper 本地安装

(1)安装 JDK

具体安装教程百度

代码语言:javascript复制
大家可通过下面五条命令来查看linux 系统是否安装了java 环境

1、java -version

2、which java

3、rpm -qa |grep java

4、echo $PATH 

5、find / -name java

(2)拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下

这里使用xftp进行传输


(3)解压到指定目录

我这里解压到了/opt目录下面的zookeeper文件夹中

代码语言:javascript复制
解压指令:
tar -zxvf xxx.tar.gz  -C 解压到的目录的路径 (否则会在当前路径下解压)

(4)修改名称

代码语言:javascript复制
 mv apache-zookeeper-3.5.7 zookeeper-3.5.7

配置文件修改

首先来到zookeeper解压后文件底下的conf目录

(1)将zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg

代码语言:javascript复制
mv zoo_sample.cfg zoo.cfg

(2)打开 zoo.cfg 文件,修改 dataDir 路径

这里我选择在与conf同级目录下面新建一个zkData目录,用来替代默认的dataDir路径


采坑实录: 错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

zookeeper 启动时一直报 Starting zookeeper … FAILED TO START

代码语言:javascript复制
./zkServer.sh start-foreground
这样启动就知道错误原因了

错误: 找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

zookeeper 启动时一直报 Starting zookeeper … FAILED TO START


操作 Zookeeper

1.启动 Zookeeper服务端

先启动Zookeeper服务端,再启动Zookeeper客户端进行访问

来到bin目录下,执行命令:

代码语言:javascript复制
./zkServer.sh start

查看进程是否启动,jps是java jdk里面的命令,一个查看当前java进程的小工具,

代码语言:javascript复制
[atguigu@hadoop102 zookeeper-3.5.7]# jps
4020 Jps
4001 QuorumPeerMain

2.查看状态

代码语言:javascript复制
./zkServer.sh status

3.启动zookeeper客户端

代码语言:javascript复制
./zkCli.sh

4.退出客户端

代码语言:javascript复制
quit

5.停止 Zookeeper

代码语言:javascript复制
./zkServer.sh stop

配置参数解读

Zookeeper中的配置文件zoo.cfg中参数含义解读如下:

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

这里指客户端与服务端之间距离多长时间发送一次信号,检验当前连接是否还生效

当然服务端与服务端之间也可以发送信号,检验彼此存活状态


2)initLimit = 10:LF初始通信时限

这里的10指的是10此心跳,而每次心跳默认是2秒钟,因此这里如果20秒内还没连接成功,那么这次连接默认失败


3)syncLimit = 5:LF同步通信时限


4)dataDir:保存Zookeeper中的数据

注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。


5)clientPort = 2181:客户端连接端口,通常不做修改。


0 人点赞