使用Zookeeper实现服务注册中心
2020-08-06 本文已影响0人
沁园Yann
一、在服务器上安装Zookeeper
1、将下载好的Zookeeper程序压缩包上传到服务器 “/usr/local” 目录下
image.png
2、解压程序包
tar -zxvf zookeeper-3.4.13.tar.gz
3、重命名 zookeeper 程序包文件夹
mv zookeeper-3.4.13 zookeeper
4、在zookeeper文件夹下创建数据和日志文件夹
mkdir -p data
mkdir -p logs
5、进入到conf目录中,复制zoo_sample.cfg文件的并命名为 zoo.cfg
cp zoo_sample.cfg zoo.cfg
6、编辑 zoo.cfg 文件(vi zoo.cfg),在文件中添加或修改下面配置
# 修改配置项
dataDir=/usr/local/zookeeper/dataDir
# 添加配置项
dataLogDir=/usr/local/zookeeper/dataLogDir
7、配置zookeeper环境变量(vi /etc/profile)
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin:/usr/tomcat9/bin
8、zookeeper常用管理命令
服务管理命令:zkServer.sh start|stop|restart|status
客户端连接:zkCli.sh -server ip:port
客户端关闭:quit 或者按 Ctrl + C
./zkServer.sh start //启动
./zkServer.sh stop //停止
./zkServer.sh restart //重启
./zkServer.sh status //查看状态,Mode:standalone 表明当前是单机模式,也表明部署成功。
./zkCli.sh -server ip:port //客户端连接,zkCli.sh不输入后面的可以连接本地zookeeper
//连上zookeeper客户端后的命令
ls / //查看连上zookeeper服务端的服务
二、在项目配置Zookeeper
1、在pom文件中添加需要用到的依赖包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!--先排除自带的zookeeper3.5.3-->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
上面依赖包默认包含zookeeper3.5.3,如果服务器上安装的zookeeper版本高于3.5.3,那么需要另外添加zookeeper依赖包,并且依赖包要比服务器上的zookeeper版本要高,否则启动项目时会报错
<!--添加zookeeper3.4.9版本-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
</dependency>
2、修改application.yml配置文件
#服务别名----注册zookeeper到注册中心名称
spring:
application:
name: cloud-provider-payment
cloud:
zookeeper:
connect-string: *.*.*.*:2181 //这里写上zookeeper的服务器ip和端口号,服务器需要先开放该端口号
3、在启动类中添加 @EnableDiscoveryClient 注解
@SpringBootApplication
@EnableDiscoveryClient //该注解用于向使用consul或者zookeeper作为注册中心时注册服务
public class PaymentMain8004
{
public static void main(String[] args) {
SpringApplication.run(PaymentMain8004.class, args);
}
}
4、启动项目,如果可以在服务器上的zookeeper客户端看到该服务,说明项目已经注册到zookeeper上了
image.png