- 内容简介
- 前言
- 第 1 章 第一个 Spring Boot 项目
- 第 2 章 集成 MySQL 数据库
- 第 3 章 集成 Spring Data JPA
- 第 4 章 使用 Thymeleaf 模板引擎
- 第 5 章 Spring Boot 事务支持
- 第 6 章 使用过滤器和监听器
- 第 7 章 集成 Redis 缓存
- 第 8 章 集成 Log4j 日志
- 8.3 使用 Log4j 记录日志
- 第 9 章 Quartz 定时器和发送 Email
- 第 10 章 集成 MyBatis
- 第 11 章 异步消息与异步调用
- 第 12 章 全局异常处理与 Retry 重试
- 第 13 章 集成 MongoDB 数据库
- 第 14 章 集成 Spring Security
- 第 15 章 Spring Boot 应用监控
- 第 16 章 集成 Dubbo 和 Zookeeper
- 第 17 章 多环境配置与部署
- 第 18 章 Spring Boot 原理解析
- 参考文献
16.1 Zookeeper 介绍与安装

16.1.1 Zookeeper 概述
ZooKeeper 是一个开源的分布式应用程序协调服务,提供的功能包括命名服务、配置管理、集群管理、分布式锁等。
(1)命名服务。可以简单理解为电话簿。电话号码不好记,但是人名好记。要打谁的电话,直接查人名就好了。在分布式环境下,经常需要对应用/服务进行统一命名,便于识别不同服务。类似于域名与 IP 之间的对应关系,域名容易记住。ZooKeeper 通过名称来获取资源或服务的地址、提供者等信息。
(2)配置管理。分布式系统都有大量服务器,比如在搭建 Hadoop 的 HDFS 的时候,需要在一台 Master 主机器上配置好 HDFS 需要的各种配置文件,然后通过 scp 命令把这些配置文件复制到其他节点上,这样各个机器拿到的配置信息是一致的,才能成功运行 HDFS 服务。Zookeeper 提供了这样的服务:一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣的都可以获得变更。这样就省去手动复制配置,还保证了可靠和一致性。
(3)集群管理。集群管理包含两点:是否有机器退出和加入、选举 Master。在分布式集群中,经常会由于各种原因(比如硬件故障、软件故障、网络问题等),有些新的节点会加入进来,也有老的节点会退出集群。这个时候,集群中有些机器(比如 Master 节点)需要感知到这种变化,然后根据这种变化做出对应的决策。Zookeeper 集群管理就是感知变化,做出对应的策略。
(4)分布式锁。Zookeeper 的一致性文件系统使得锁的问题变得容易。锁服务可以分为两类,一类是保持独占,另一类是控制时序。单机程序的各个进程对互斥资源进行访问时需要加锁,分布式程序分布在各个主机上的进程对互斥资源进行访问时也需要加锁。很多分布式系统有多个可服务的窗口,但是在某个时刻只让一个服务去干活,当这台服务出问题的时候锁释放,立即 fail over 到另外的服务。在很多分布式系统中都是这么做的,这种设计有一个更好听的名字 Leader Election(Leader 选举)。举个通俗点的例子,比如去银行取钱,有多个窗口,但是只能有一个窗口对你服务。如果正在对你服务的窗口的柜员突然有急事走了,怎么办呢?找大堂经理(Zookeeper),大堂经理会指定另外的窗口继续为你服务。
Zookeeper 的一个最常用的使用场景是担任服务生产者和服务消费者的注册中心,这也是接下来的章节中会使用到的。服务生产者将自己提供的服务注册到 Zookeeper 中心,服务消费者在进行服务调用的时候先到 Zookeeper 中查找服务,获取服务生产者的详细信息之后,再去调用服务生产者的内容与数据,具体如图 16-1 所示。
图 16-1 Zookeeper 服务注册简单原理
本书毕竟不是一本专门讲 Zookeeper 的书,所以本节中只是对 Zookeeper 进行简单的功能介绍。
16.1.2 Zookeeper 的安装与启动
Zookeeper 的安装与启动非常简单,具体步骤如下:
步骤 01 在官方网站(https://archive.apache.org/dist/zookeeper/)下载对应安装包,这里选用 zookeeper-3.3.6 版本。
步骤 02 将下载好的安装包解压到 D 盘目录下。在解压后的目录中找到配置文件 zoo_ sample.cfg(存放在 D:\zookeeper-3.3.6\zookeeper-3.3.6\conf\目录下),该配置文件是 Zookeeper 为我们提供的最简单的配置文件,将其复制一份并重新命名为 zoo.cfg,Zookeeper 启动时会默认在 conf 目录下读取 zoo.cfg 配置文件,如图 16-2 所示。
图 16-2 生成 zoo.cfg 配置文件
步骤 03 zoo.cfg 配置文件生成之后,在目录 D: \zookeeper-3.3.6\zookeeper-3.3.6\bin 下双击 zkServer.cmd 文件启动 Zookeeper,如果是 Linux 环境,就执行 zkServer.sh 文件。在命令行窗口中看到如图 16-3 所示的 Zookeeper 启动信息,代表 Zookeeper 安装成功。
图 16-3 Zookeeper 安装成功信息
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论