首页 > 其他分享 >zookeeper总结

zookeeper总结

时间:2022-08-22 12:56:04浏览次数:122  
标签:总结 zk zookeeper leader soft 节点 分布式

zk是分布式协调服务。架构角色,分为leader follower observer。follower参与选举。observer提供读操作。

特点:
1、高可用,主从架构,官方测试主节点挂了,200ms完成恢复,也就是主节点选举对外提供服务。
2、高并发,三个节点的主从结果可以支持10万左右的读。
3、保证顺序一致性:单主节点写入,保证客户端更新将按照发送顺序处理
4、原子性:更新成功或者失败,没有部分结果。
5、单系统映像:无论服务链接到哪个服务器,客户端都将看到相同访问视图。
6、可靠性:持久性。
7、及时性:系统的客户视图保证特定时间范围内是最新的(最终一致性)。

临时节点,天然可做分布式锁应用。session完成锁即是否。

用于:
1、分布式锁,基于临时节点功能。锁依托一个父节点且具备-s 代表父节点下可以有多把锁,次锁可以用于队列式或者事务的锁。
2、HA(高可用)选主功能。
3、发布与订阅功能。

安装步骤:
准备多台linux虚拟机
1、安装jdk,配置环境变量
2、下载 zookeeper https://zookeeper.apache.org/
3、tar xf zookeeper.*.tar.gz
4、mkdir /opt/soft
5、mv zookeeper /opt/soft
6、vi /etc/profile
配置环境变量:
export ZOOKEEPER_HOME=/opt/soft/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin

7、cd zookeeper/conf
8、cp zoo.sem*.cfg zoo.cfg
9、vi zoo.cfg
dataDir=
server01=node01:2888:3888

10、mkdir -p /var/soft/zk
11、echo 1 > /var/soft/zk/myid
12、cd /opt && scp -r ./soft/ node02.pwd
13、node02~node04修改创建myid
14、启动验证,顺序1,2,3,4
15、zkServer.sh start-foreground

客户端链接zkCli.sh
help
create /node1
create -s /node2

要说zk,一致性算法需要先说Paxos算法。
Paxos是基于消息传递的一致性算法。Paxos被认为目前为止唯一的分布式一致性算法。其他算法都是对Paxos算法的改进或者简化。
Paxos总结:数据一致性,过半通过,两阶段提交。

ZAB协议:作用在可用状态有leader时。原子广播协议。

步骤:
1、客户端调用create /ooxx 创建节点
2、服务端主节点或者从节点接收到请求,如果是从节点转发至主节点。
3、主节点发起广播,进行日志纪录
4、从节点返回结果
5、主节点判断过半返回客户端结果。

leader服务器挂掉,选举过程。
发生场景:
1、第一次启动
2、集群重启,leade挂掉。

zk服务器节点会有两个id ① myid ② Zxid(事务id)
新leader被选举
某节点发起投票,都会触发准leader发起自己的投票
推选制,先比较Zxid,如果zxid相同,再比较myid。

分布式锁实现
zk实现分布式,需要解决的问题
1、争抢锁,同一时刻只有一个线程获取到锁。
2、获取锁的线程出问题,因为临时节点(session),伴随着节点的消失锁进而消失,不会存在死锁的问题。
3、获取锁的线程成功,如何释放锁。
4、释放锁,删除,其他线程如何知道。
4-1:主动轮询,心跳,存在问题,延迟,压力。
4-2:watch:解决延迟问题,弊端:压力。
4-3:sequence+watch:watch前一个,最小的获取锁。最小的释放锁,zk只有第二个发事件回调。

分布式锁

标签:总结,zk,zookeeper,leader,soft,节点,分布式
From: https://www.cnblogs.com/stubborn-dude/p/16319649.html

相关文章

  • Redis 的持久化总结
    AOF持久化这种保存写操作命令到日志的持久化方式,就是Redis里的AOF(AppendOnlyFile)持久化功能,注意只会记录写操作命令,读操作命令是不会被记录的,因为没意义。第一......
  • 第七周总结(8.22)
    上周主要学习了hadoop相关的知识,因为是在虚拟机上安装的hadoop,所以还学习了linux的一些常用的命令,对于文件系统有了更深的理解。后面配置了hadoop环境以及hive仓库,并通过远......
  • Logstash – 总结
    参考资料1、官方网站:https://www.elastic.co/guide/en/logstash/current/index.html介绍Logstash是一个开源数据收集引擎,具有实时管道功能。可以同时从多个数据源获取......
  • 算法中的Top_K 问题总结
    写在前面在人工智能算法岗位的面试中,TopK是问得最多的几个问题之一:到底有几种方法?这些方案里蕴含的优化思路究竟是怎么样的?为啥TopK这么受欢迎呢?究其原因,还是因为它不......
  • Python批量处理文件的方法总结(包括folder、txt、xml、excel)
    一、使用Python批量创建folder主要用到的库就是os;代码运行的结果是:在指定文件夹下创建一组文件夹。part1:代码:importos#导入os模块......
  • Linux 基础知识总结
    Linux目录结构总结/:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开......
  • Oracle 序列学习与使用总结
    Oracle序列学习与使用总结by:授客QQ:1033553122简述序列是oracle提供的用于生成一系列数字的数据库对象,序列会自动生成顺序递增的序列号,可用于提供唯一的自动递增主键。......
  • AtCoder Beginner Contest 265赛后总结
    生日打了场AtcoderBeginner还可以吧……做出了前四道题,第五、六题是dp方程没想出来QwQA-Apple水题+1,感谢atcoder把坑都亮出来QwQ……分两种情况讨论:三个一卖的比(一个......
  • **面试总结
    hs面试总结:1服务器传输命令scp:远程文件拷贝程序,是securecopyprogram的的缩写-r(递归)2.查看服务器运行情况以及cpu,运用哪个命令top:查看服务器各个进程情......
  • [莫比乌斯反演]一些常用公式总结
    一.莫比乌斯反演公式$$$\qquad\qquad\qquad\qquad\qquad$设$F(n)=\sum\limits_{d|n}f(d)$,那么有$f(n)=\sum\limits_{d|n}\mu(d)F(\frac{n}{d})$其中$\mu(d)$......