linux安装zookpper及常用命令
首先安装jdk从官网下载对应的linux版本,上传到服务器,修改环境变量
进入配置文件 vim /etc/profile
加入代码:
JAVA_HOME=/usr/local/java/jdk1.8.0_161
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
测试:java -version
进入zookeeper官网 http://zookeeper.apache.org/
然后下载你需要的版本 下载好后放到linux服务器上home文件夹中 ps:所有上传的tar包都放到这个文件夹中
改个名字: mv zookeeper-3.4.11 zookeeper 换个路径:mv zookeeper /usr/local/
修改环境变量 vim /etc/profile
加入:
ZOOKEEPER_HOME=/usr/local/zookeeper
PATH=$JAVA_HOME/bin:$PATH:$ZOOKEEPER_HOME/bin
zookeeper目录结构:
zookeeper配置文件:cp zoo_sample.cfg zoo.cfg 复制配置文件
1.tickTime:CS通信心跳数
Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
tickTime以毫秒为单位。
tickTime:该参数用来定义心跳的间隔时间,zookeeper的客户端和服务端之间也有和web开发里类似的session的概念,而zookeeper里最小的session过期时间就是tickTime的两倍。
2.initLimit:LF初始通信时限
集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)。
此配置表示,允许 follower (相对于 leader 而言的“客户端”)连接 并同步到 leader 的初始化连接时间,它以 tickTime 的倍数来表示。当超过设置倍数的 tickTime 时间,则连接失败。
3.syncLimit:LF同步通信时限
集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)。
此配置表示, leader 与 follower 之间发送消息,请求 和 应答 时间长度。如果 follower 在设置的时间内不能与leader 进行通信,那么此 follower 将被丢弃。
启动zookeeper: 进入bin目录 ./zkServer.sh start
zookeeper数据结构: b-tree
客户端连接服务端:./zkCli.sh
zookeeper五大特点:
① 首脑模式: 主机挂了后会在从机中选出替代主机的机器
②统一配置文件管理:在一台服务器上配置好会同步到其他服务器上;
③消息订阅
④分布式锁 类似线程锁:调用资源时其他调用时阻塞状态
⑤集群管理: 保证数据的强一致性
目前来看 zookeeper是数据结构中的tree结构
可以创建持久节点.临时节点和顺序节点
create -e/-s 临时节点和顺序节点
create [-s] [-e] path data acl
set node data version 修改节点
delete node version 删除节点
增删改 在删改的时候加上版本号 会实现乐观锁
watcher机制 监控节点的增删改 都会触发watcher事件
父节点watch事件触发:
①NodeCreated : 绑定命令为 stat /path watch
②NodeDataChanged:
③NodeDeleted:
④NodeChildrenChanged:父节点使用ls path watch 子节点增加删除时都会触发此事件
!!!ps: 所有绑定事件在触发一次后都会失效,需要进行重新绑定 ,子节点修改时只能在子节点绑定get path watch
watch使用场景:zk集群统一资源配置。当修改主机节点信息时会触发watch事件,修改其他节点信息,其他节点信息改变会触发此节点watch事件进而继续修改其他节点配置信息如图:
ACL:权限认证列表 (access control list) 权限控制单
ACL命令行学习:
命令这样写:
schema: 包含三种模式
world:任何人都可以访问
auth: 用户名明文密码访问
digest: 用户名密文密码访问
注册用户以及设置权限:
digest: 加密登陆
不上图了
通过ip设置权限:
超级管理员:
vim zkServer.sh
/nohup 查找
"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:g9oN2HttPfn8MMWJZ2r45Np/LIA=" \
super:superpw
重启服务 ./zkServer.sh restart 生效
zookeeper 四字命令:用于查看zookeeper各状态
去官网看吧 还有白名单。
cd conf
vim zoo.cfg
搭建伪集群
启动每个服务器 连接2181端口:
./zkCli.sh -server localhost:2181 设置数据
切换 ./zkCli.sh -server localhost:2182 查询数据