一、Zookeeper介绍
Zookeeper是什么
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 项目一个开源的实现,是 Hadoop和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
二、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 模块
- 新建 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>
- 在配置文件
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: "*"
- 在启动类上添加 @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]