zookeeper
zookeeper 是一个分布式协调服务
配置
上传zookeeper.jar包
解压
修改 zookeeper下的zoo.cfg
dataDir= 设置自己的目录 -------是数据目录路径
配置节点: server.1=node01:2888:3888
server.1=node01:2888:3888
server.1=node01:2888:3888
2888和3888是端口号
2888:是对外通信的端口号
3888:是leader挂掉之后 重新选举leader时候提供的对外的端口号
注意:检查防火墙是否关闭
在没有配置防火墙端口号的情况下zookeeper集群起不起来
选举机制
选举遵循过半原则 (少数服从多数)
我zookeeper集群的节点数最好是2n+1个
原子广播和zab协议
广播模式:已经选举的出来的leader,开始对外提供服务---原子广播
角色
角色 任务 状态
1. leader 领导者 发起请求,并且投票 leading
2. follower 跟随者 响应leader的请求并发起投票 following
3. observer 监听者 监视leader 并将leader的情况汇报 不参与投票 observering
looking (leader挂掉或者刚启动集群)
监听机制
follower查看leader的状态,然后将状态信息进行更新和发送
zookeeper命令
启动: zkServer.sh start
关闭:zkServer.sh stop
状态:zkServer.sh status
启动客户端:zkCli.sh -server ip:port(2181)
操作文件的命令
ls / 查看
set 设置
get 获取
create [-s] [-e] name data 创建文件节点 -e 临时 -s 顺序 默认持久
znode的类型
持久节点
临时节点
持久顺序节点
临时顺序节点