服务注册之Zookeeper

一、Zookeeper介绍

Zookeeper是什么

ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 GoogleChubby 项目一个开源的实现,是 HadoopHbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

二、Zookeeper应用

2.1 安装 Zookeeper

这里我们采用 Docker 形式安装:

# 拉取镜像
docker pull zookeeper:3.5    
# 创建容器
docker run --name zookeeper -p 2181:2181 -d zookeeper:3.5
# 进入容器
docker exec -it zookeeper /bin/bash 
# 进入 zookeeper 目录   
cd bin
# 通过命令行打开 zookeeper
. zkCli.sh   
# 查看当前服务列表,可以看到只有一个 zookeeper 服务
ls /
[zookeeper]    

2.2 创建 zookeeper-client 模块

  1. 新建 zookeeper-client 模块 添加相关依赖:
<properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <spring-boot.version>2.3.0.RELEASE</spring-boot.version>
    <spring-cloud.version>Hoxton.SR4</spring-cloud.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
  1. 在配置文件 resources/application. yml 中添加相关配置:
server:
  # 指定运行端口
  port: 8800

spring:
  application:
    # 指定服务名称
    name: zookeeper-client
  cloud:
    zookeeper:
      # zookeeper服务地址
      connect-string: 192.168.205.10:2181

management:
  endpoint:
    health:
      # 显示应用健康信息
      show-details: always
  endpoints:
    web:
      exposure:
        include: "*"
  1. 在启动类上添加 @EnableDiscoveryClient 注解
@EnableDiscoveryClient
@SpringBootApplication
public class ZookeeperClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZookeeperClientApplication.class, args);
    }

}

4) 启动项目,进入 Zookeeper 命令行查看:

[zk: localhost:2181(CONNECTED) 1] ls /
[services, zookeeper]
[zk: localhost:2181(CONNECTED) 2] ls /services
[zookeeper-client]
posted @ 2020-08-12 17:27  MarkLogZhu  阅读(259)  评论(0)    收藏  举报