Zookeeper介绍
Zookeeper 是一个基于 Google Chubby 论文实现的一款解决分布式数据一致性问题的开源实现,方便了依赖 Zookeeper 的应用实现 数据发布 / 订阅、负载均衡、服务注册与发现、分布式协调、事件通知、集群管理、Leader 选举、 分布式锁和队列 等功能
Zookeeper下载
配置说明:
Zookeeper配置目录zookeeper的安装配置目录在zookeeper-x.x.x/conf/目录下.
zookeeper脚本目录zookeeper的启停脚本目录在zookeeper-x.x.x/bin/目录下.(.sh和.cmd分布适用于unix系统和windows系统)
单机环境搭建
zookeeper安装配置大致分为两个步骤: 配置服务器标识文件 和 修改配置zoo.cfg文件.
创建服务器标识文件
示例中我们创建了一个目录 , 该目录为Zookeeper的数据存储目录, 并在该目录下创建了一个myid文件, 文件写入内容 ,用来标识当前实例的标识值为1.
修改zoo.cfg文件并启动
zookeeper的配置文件在 目录下,默认的示例文件名为zoo_sample.cfg
示例中只是修改了dataDir路径为我们上一步创建的数据存储目录 , 并增加了一个服务通讯标识 .
参数说明:
tickTime: 用来指示服务器之间或客户端与服务器之间维护心跳机制的最小时间单元,Session最小过期时间默认为两倍的tickTime.
initLimit: 集群中的Leader节点和Follower节点之间初始连接时能容忍的最多心跳数.
syncLimit: 集群中的Leader节点和Follower节点之间请求和应答时能容忍的最多心跳数.
dataDir: Zookeeper保存服务器存储快照文件的目录(默认目录:/tmp/zookeeper)
dataLogDir: 用来存储服务器事务日志
clientPort: 客户端连接Zookeeper服务器的端口,Zookeeper会监听这个端口接受客户端的访问请求(默认:2181)
启动Zookeeper
访问Zookeeper
伪集群环境搭建
伪集群采用一台机器多个示例的方式搭建
数据存储目录和服务ID配置
| 机器 | 数据存储目录 | 服务ID标识文件 | 服务ID标识值 | 客户端通讯端口 | 集群内主从通讯端口 | 集群内Lead选举端口| :-------- | :----- | :----- | :----- | :----- | :----- |:----- | :----- || 127.0.0.1 | zookeeper-3.3.6-node1/data | zookeeper-3.3.6-node1/data/myid | 1 | 2181 | 2887 | 2888 || 127.0.0.1 | zookeeper-3.3.6-node2/data | zookeeper-3.3.6-node2/data/myid | 2 | 2182 | 2888 | 3888 || 127.0.0.1 | zookeeper-3.3.6-node3/data | zookeeper-3.3.6-node3/data/myid | 3 | 2183 | 2889 | 3889 |
Zookeeper节点文件配置
节点1 "/export/cloud/zookeeper-3.3.6-node1/conf/zoo.cfg"的配置
节点2 "/export/cloud/zookeeper-3.3.6-node2/conf/zoo.cfg"的配置
节点3 "/export/cloud/zookeeper-3.3.6-node3/conf/zoo.cfg"的配置
集群访问
分别启动三个节点,示例展示在节点2上进行集群状态监测和访问
集群环境搭建
zookeeper的集群环境基本和单机搭建思路一致.各台机器上部署一份zookeeper示例, 配置各自的服务标识ID, 在zoo.cfg中配置统一的服务标识集合.假设集群中有3台机器: , ,
数据存储目录和服务ID配置
| 机器 | 数据存储目录 | 服务ID标识文件 | 服务ID标识值 | 客户端通讯端口 | 集群内主从通讯端口 | 集群内Lead选举端口| :-------- | :---- | :----- | :----- | :----- | :----- |:----- | :----- || 172.30.12.197 | zookeeper-3.3.6/data | zookeeper-3.3.6/data/myid | 1 | 2181 | 2888 | 3888 || 172.30.12.198 | zookeeper-3.3.6/data | zookeeper-3.3.6/data/myid | 2 | 2181 | 2888 | 3888 || 172.30.12.199 | zookeeper-3.3.6/data | zookeeper-3.3.6/data/myid | 3 | 2181 | 2888 | 3888 |
Zookeeper节点文件配置
三台机器实例采用同样的配置
连接到集群
Zookeeper四字短语
ZooKeeper 支持某些特定的四字命令字母与其的交互。它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息。用户在客户端可以通过 telnet 或 nc 向 ZooKeeper 提交相应的命令。
领取专属 10元无门槛券
私享最新 技术干货