目录
Linux上安装zookeeper
1、Apache官网下载zookeeper安装包
下载地址:https://zookeeper.apache.org/releases.html
一般下载最新版本,本文使用3.7.0.tar.gz
2、使用XFTP上传到Linux /usr/local/文件夹下、并解压
解压命令:tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz
把文件夹名字缩短一些,方便操作:
mv apache-zookeeper-3.7.0-bin zookeeper-3.7.0
3、修改配置文件
cd /usr/local/zookeeper-3.7.0/conf
# 重命名配置文件,名为zoo.cfg
mv zoo_sample.cfg zoo.cfg
# 修改配置文件
vim zoo.cfg
# 设置zookeeper数据存储位置
dataDir=/usr/local/zookeeper-3.7.0/zkData
# 在最后加上
admin.serverPort=2190
# Zookeeper有个内嵌的管理控制台,通过netty启动,启动默认端口8080。admin.serverPort=xx,是设置netty启动端口。8080端口很常用,建议更换。也可以通过设置启动参数-Dzookeeper.admin.enableServer=false禁用该功能。
最后:wq保存退出
由于在修改配置文件时,指定了 dataDir=/usr/local/zookeeper-3.7.0/zkData
而当前zookeeper-3.7.0目录下是没有 zkData 文件的
因此
cd 到 zookeeper-3.7.0目录下: mkdir zkData
至此,zookeeper就在Linux上配置完成
Linux上启动和停止zookeeper
cd 到 之前安装zookeeper的目录下
ls查看目录文件夹
cd到bin目录下
ll查看文件夹
1、图中zkServer.sh就是启动zookeeper的命令文件
2、zkCli.sh连接客户端
因此,先使用命令
./zkServer.sh start 启动zk
./zkServer.sh status 查看状态
jps查看进程
./zkServer.sh stop 停止zk
zkCli.sh 连接客户端
连接客户端后,查看当前zookeeper注册中心中已注册的服务
将Springboot项目注册进zk的坑!!
1、在启动类开启注解
用于向注册中心注册服务(以consul或zookeeper作为注册中心时)
Pom.xml文件中剔除默认zk的jar包,以及slf4j的jar包
上代码:
<!-- SpringBoot整合Web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>hx.springcloud</groupId>
<artifactId>api-commons</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- SpringBoot整合zookeeper客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!--先排除自带的zookeeper版本-->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--再引入我们服务器中装的 zookeeper-3.7.0版本-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.7.0</version>
<!-- 其次 排除zookeeper中自带的 slf4j的jar包。 -->
<!-- 因为该包在 spring-boot-starter-web中已经有了。【jar包冲突】 -->
<exclusions>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
</dependency>