1. 简介
本文将介绍如何使用Zookeeper
在微服务框架中实现服务发现,该服务发现机制可作为云服务的注册中心。通过Spring Cloud Zookeeper
为应用程序提供一种Spring Boot集成,将Zookeeper通过自动配置和绑定 的方式集成到Spring环境中。
在本例子中我们将创建两个应用程序:
- 提供服务的应用程序(称为
服务提供者
) - 使用此服务的应用程序(称为
服务消费者
)
2. 安装Zookeeper
2.1 下载
Apache官方最新版本为:3.4.8下载地址:http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
2.2 安装
解压到指定目录下 D:softzookeeper-3.4.8
修改zoo_sample.cfg 文件名(D:softzookeeper-3.4.8conf) 为 `zoo.cfg`主要修改一下日志位置,具体配置文件如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=D:\\zookeeper\\data
dataLogDir=D:\\zookeeper\\log
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
tickTime
:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。dataDir
:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。dataLogDir
:顾名思义就是 Zookeeper 保存日志文件的目录clientPort
:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
2.3 启动
进入到bin目录,并且启动zkServer.cmd,这个脚本中会启动一个java进程,双击该文件即可启动:
3. 搭建服务提供者
我们将创建一个服务提供者,通过增加pring-cloud-starter-zookeeper-discovery依赖和在主程序中引入@EnableDiscoveryClient注释。服务的具体内容是通过GET请求返回“Hello World!”字符串。整个项目结构如下:
3.1 导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns