zookeeper学习笔记

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. 服务器初始化

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值