- 概述
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:
管理配置信息,可以作为管理配置信息的中央服务器
命名服务
分布式锁
分组服务,也就是leader选举
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
首先,涉及到三个角色:服务提供者、服务消费者和服务注册中心(就是zk)。
服务提供者:服务来源方,一个服务提供者只有注册到服务注册中心才可以被消费者使用。而要注册到注册中心则需要提供如下的信息:
- 服务提供者的应用名称
- 服务地址
- 服务端口
- 请求URL
- 服务消费者:服务的消费方,主要职责包括以下几个方面:
- 服务消费者在启动时从注册中心获取需要的服务注册信息并将注册信息缓存在本地
- 监听服务注册信息的变更,如果收到zk的变更通知,则修改本地缓存的服务注册信息
- 根据本地缓存的服务注册信息构建调用请求,并根据负载均衡策略转发请求。对服务提供方的注册信息进行心跳检测,如果某个已缓存的注册信息已经下线,则将该负责注册信息从本地缓存中移除。
- 服务注册中心:存储服务提供者注册的信息,并将注册信息实时变更主动推送给服务消费者。、
- 安装&配置
把下载的zookeeper的文件解压到指定目录
D:\Program Files\zookeeper-3.4.10
进入 D:\Program Files\zookeeper-3.4.10\conf 目录修改zoo_sample.cfg文件名为 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 anacknowledgement
syncLimit=5
# the directory where the snapshot isstored. //镜像数据位置
dataDir=D:\\data\\zookeeper
#日志位置
dataLogDir=D:\\logs\\zookeeper
# the port at which the clients willconnect 客户端连接的端口
clientPort=2181
进入到D:\Program Files\zookeeper-3.4.10\bin目录,并且启动zkServer.cmd,这个脚本中会启动一个Java进程
D:\Program Files\zookeeper-3.4.10\bin>zkServer.cmd
如果出现以上的结果:则说明zk安装成功。