zookeeper是什么:zookeeper是一个经典的分布式数据一致性的解决方案,致力于为分布式应用提供一个高性能,高可用,且具严格控制访问顺序能力的分布式协调存储服务
zookeeper的安装
创建一个zookeeper的用户
我们用zookeeper的用户登录,然后修改zookeeper的环境变量
然后用客户端登录:
quit命令是退出
zookeeper的节点相关命令:
创建有序节点的作用:可以用来在分布式中创建唯一的id
zookeeper的权限控制:类似于linux的权限控制
zookeeper javaAPI
zookeeper的事件监听机制
集群的搭建
注意:如果用的云服务器,我们需要在配置文件中添加上quorumListenOnAllIPs=true,否则集群无法启动
zookeeper的每一个节点都会保存集群中数据的一个副本,所以每个节点都可以读到数据
对于写操作,比较复杂:
所有的写操作:都必须是leader发起的,即便是客户端连接的是follower,follower先转发给leader
如果部分follower由于网络原因,没有给leader发送ack码(网络原因或者宕机),leader还是会发送commit提交给其他follower,因为leader其实也算是一个节点,也会有事务操作,也会有一个ack码
当follower重新上线时,会从leader同步数据(即当有的follower没有收到commit时,没有保存数据,当重新上线时会同步数据)
对于observer节点,不涉及两段提交协议,只有在leader发起最后的commit时,才会同步数据
zookeeper的两种选举时机:运行时和启动时
zookeeper中,一定要大于一半,而不是大于等于一半的原因(要解决脑裂问题)
当有一半的follower挂掉后(只要follower数量整除2 个follower挂掉),系统就不会对外提供服务了,然后需要重新选举leader(网上是说zookeeper节点最好是奇数原因是:由于follower的过半挂掉急需要从新选举,所以奇数和偶数没有区别,例如一共5个节点 和一共6个节点都只挂掉2个)
当增加follower 可以增加读的性能,但是不能增加写的性能,因为涉及ack确认,所以我们可以用observer,当commit后,observer会从同步数据
zookeeper 的11 个四字命令
zookeeper的conf命令
zookeeper 的cons命令
zookeeper 的crst命令
zookerper 的dump命令
zookeeper的envi命令
zookeeper的ruok命令

zookeeper的stat命令

zookeeper的wchs命令
zookeeper的srst命令
zookeeper的mntr命令
zookeeper的可视化工具
tookeeper的使用
将配置文件放到conf下
配置文件的修改
在log4j的配置文件中我们看到日志目录
所以我们创建对应的日志目录
然后将tomcat上传到linux服务器上
然后启动tomcat
然后将
我们可以打在tomcat中的日志看到我们的操作
一致性
一致性分为:强一致性,弱一致性,最终一致性
分区容错性:就是将一个系统拆分为多个子系统,他们之间(需要网络整合起来)不能报错,需要容错,要提高容错性
所以只能保证:cp 或者ap,以为要求强一致,就要阻塞
zookeeper 的源码学
zkServer服务器启动要做的事情:
1. 初始化配置
2. 监听端口
3.初始化DataTree
4. 领导者选举
5. 服务器初始化