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:客户端连接端口,通常不做修改。


springcloud gatway没有生效 springcloud zk_客户端


概述

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

springcloud gatway没有生效 springcloud zk_zookeeper_02


工作机制

springcloud gatway没有生效 springcloud zk_java_03


zookeeper特点

springcloud gatway没有生效 springcloud zk_java_04


  • 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器





数据结构

springcloud gatway没有生效 springcloud zk_zookeeper_05


统一命名服务

springcloud gatway没有生效 springcloud zk_zookeeper_06


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


统一配置管理

springcloud gatway没有生效 springcloud zk_java_07


统一集群管理

springcloud gatway没有生效 springcloud zk_zookeeper_08


服务器动态上下线

springcloud gatway没有生效 springcloud zk_zookeeper_09


软负载均衡

springcloud gatway没有生效 springcloud zk_zookeeper_10


zookeeper下载

官网

springcloud gatway没有生效 springcloud zk_客户端_11


springcloud gatway没有生效 springcloud zk_java_12


zookeeper 3.5.7版本是较稳定版本


下载 Linux 环境安装的 tar 包

springcloud gatway没有生效 springcloud zk_客户端_13


Zookeeper 本地安装

(1)安装 JDK

具体安装教程百度

大家可通过下面五条命令来查看linux 系统是否安装了java 环境

1、java -version

2、which java

3、rpm -qa |grep java

4、echo $PATH 

5、find / -name java

springcloud gatway没有生效 springcloud zk_客户端_14


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

这里使用xftp进行传输

springcloud gatway没有生效 springcloud zk_zookeeper_15


(3)解压到指定目录

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

springcloud gatway没有生效 springcloud zk_zookeeper_16

解压指令:
tar -zxvf xxx.tar.gz  -C 解压到的目录的路径 (否则会在当前路径下解压)

(4)修改名称

mv apache-zookeeper-3.5.7 zookeeper-3.5.7

springcloud gatway没有生效 springcloud zk_java_17


配置文件修改

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

springcloud gatway没有生效 springcloud zk_java_18


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

mv zoo_sample.cfg zoo.cfg

springcloud gatway没有生效 springcloud zk_客户端_19


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

springcloud gatway没有生效 springcloud zk_客户端_20


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

springcloud gatway没有生效 springcloud zk_java_21


springcloud gatway没有生效 springcloud zk_客户端_22


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

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

./zkServer.sh start-foreground
这样启动就知道错误原因了

操作 Zookeeper

1.启动 Zookeeper服务端

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

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

./zkServer.sh start

springcloud gatway没有生效 springcloud zk_客户端_23

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

[atguigu@hadoop102 zookeeper-3.5.7]# jps
4020 Jps
4001 QuorumPeerMain

2.查看状态

./zkServer.sh status

springcloud gatway没有生效 springcloud zk_java_24

3.启动zookeeper客户端

./zkCli.sh

springcloud gatway没有生效 springcloud zk_java_25


springcloud gatway没有生效 springcloud zk_zookeeper_26

4.退出客户端

quit

5.停止 Zookeeper

./zkServer.sh stop

springcloud gatway没有生效 springcloud zk_zookeeper_27


配置参数解读

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

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

springcloud gatway没有生效 springcloud zk_java_28


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

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


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

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

springcloud gatway没有生效 springcloud zk_java_29


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

springcloud gatway没有生效 springcloud zk_java_30


4)dataDir:保存Zookeeper中的数据

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


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