使用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
上一篇下一篇

猜你喜欢

热点阅读