以下内容引用尚硅谷,如有侵权请联系删除
第一章 Zookeeper入门 1.1 概述
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
统一命名服务 统一配置管理 统一集群管理 服务器动态上下线 软负载均衡 1.5 下载地址官网首页
https://zookeeper.apache.org/
下载 Linux 环境安装的 tar 包
1)安装前准备
(1)安装 JDK
(2)拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下
(3)解压到指定目录
(4)修改名称
2)配置修改
(1)将/zookeeper/zookeeper-3.5.7-bin/conf这个路径下的 zoo_sample.cfg 修改为 zoo.cfg
(2)打开 zoo.cfg 文件,修改 dataDir 路径
(3)在/zookeeper/zookeeper-3.5.7-bin/这个目录上创建 zkData 文件夹
3)操作 Zookeeper
(1)启动 Zookeeper
(2)查看进程是否启动
(3)查看状态
(4)启动客户端
./zkCli.sh
(5)退出客户端
(6)停止 Zookeeper
1)tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
2)initLimit = 10:LF初始通信时限
Follower与Leader初始连接时的最大时长为10*tickTime
3)syncLimit = 5:LF同步通信时限
4)dataDir:保存Zookeeper中的数据
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录
5)clientPort = 2181:客户端连接端口,通常不做修改
第三章 Zookeeper集群操作 3.1 集群操作 3.2 Zookeeper集群为什么是奇数Zookeeper的大部分操作都是通过选举产生的。比如,标记一个写是否成功是要在超过一半节点发送写请求成功时才认为有效。同样,Zookeeper选择领导者节点也是在超过一半节点同意时才有效。最后,Zookeeper是否正常是要根据是否超过一半的节点正常才算正常。这是基于CAP的一致性原理。
zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个zookeeper,那么只要有1个死了zookeeper就不能用了,因为1没有过半,所以2个zookeeper的死亡容忍度为0;同理,要是有3个zookeeper,一个死了,还剩下2个正常的,过半了,所以3个zookeeper的容忍度为1;同理你多列举几个:2->0;3->1;4->1;5->2;6->2会发现一个规律,2n和2n-1的容忍度是一样的,都是n-1,所以为了更加高效,何必增加那一个不必要的zookeeper呢
zookeeper的选举策略也是需要半数以上的节点同意才能当选leader,如果是偶数节点可能导致票数相同的情况
3.3 Zookeeper第一次启动选举机制 3.4 Zookeeper非第一次启动选举机制


