zookeeper重难知识点汇总
Posted 技术无产者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zookeeper重难知识点汇总相关的知识,希望对你有一定的参考价值。
一.一致性协议
1.ZAB协议:
实例详解ZooKeeper ZAB协议、分布式锁与领导选举 - 架构 - dbaplus社群:围绕Data、Blockchain、AiOps的企业级专业社群。技术大咖、原创干货,每天精品原创文章推送,每周线上技术分享,每月线下技术沙龙。读完本文,ZooKeeper不再难懂!https://dbaplus.cn/news-141-1875-1.html
2.Paxos
分布式系列文章——Paxos算法原理与推导 - lzslbd - 博客园https://www.cnblogs.com/linbingdong/p/6253479.html
3.2pc
zookeeper的2PC事务提交 - 码农岛https://www.manongdao.com/article-281763.html
注意:
a> ZAB的Commit是一种类似于2pc的协议
b> zab的Leader接收到写请求后,会将写提案转发给所有follower,当Follower执行写请求成功后,给与leader反馈,若leader收到半数以上(包括自己)执行成功确认,就发送Commit,让各个follower执行commit.随后的follwer也会相继更新成功
二.zk选举机制
ZooKeeper 的选举机制,你了解多少? - 削微寒 - 博客园https://www.cnblogs.com/xueweihan/p/14515634.html
五分钟搞懂zookeeper选举机制 | 聂扬帆博客https://yangfannie.com/2001.html
Zookeeper选举机制(重点) - 张涨涨 - 博客园https://www.cnblogs.com/zyd-994264926326/p/15162642.html
注意的是: 当该节点的选择的leader发生变化才更新后的投票发送出去
三.为什么要集群中节点的个数是奇数个/脑裂现象
四.zookeeper 如何保证半数提交后剩下的节点上最新的数据呢?
zookeeper 的leader和follower的prepare和commit时,只要半数的节点通过就算同意,leader就会commit,那么剩下的半数节点的数据如何同步到最新的呢?
剩下的节点,会进行版本比对,发现版本不一致的话,会更新节点的数据。
五.分布式锁
1.zk分布式锁
2.Redis分布式锁
基于redis分布式锁实现“秒杀”_刘劭的博客-CSDN博客_分布式锁实现秒杀最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。业务场景所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。一些可能的实现刚才提到https://blog.csdn.net/u010359884/article/details/50310387?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link&utm_relevant_index=2Redis Setnx 命令 | 菜鸟教程Redis Setnx 命令 Redis 字符串(string) Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。 语法 redis Setnx 命令基本语法如下: redis 127.0.0.1:6379> SETNX KEY_NAME VALUE 可用版本 >= 1.0.0 返回值 设置成功,返回 1 。 设置失败,..https://www.runoob.com/redis/strings-setnx.html
六.CAP理论
Eureka和ZooKeeper的区别_java_xth的博客-CSDN博客_eureka和zookeeper的区别首先我们先说下: RDBMS==>(mysql,Oracle,SqlServer等关系型数据库)遵循的原则是:ACID原则(A:原子性。C:一致性。I:独立性。D:持久性。)。NoSql==> (redis,Mogodb等非关系型数据库)遵循的原则是:CAP原则(C:强一致性。A:可用性。P:分区容错性)。在分布式领域有一个很著名的CAP定理:C:数据一致性。A:服务...https://blog.csdn.net/java_xth/article/details/82621776?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1.no_search_link&utm_relevant_index=2cap分析zk是cp还是ap_JavaMa的博客-CSDN博客_zookeeper是ap还是cp看到有文章说zk是cp,也有人说是ap。zk的ap和cp是从不同的角度分析的。从一个读写请求分析,保证了可用性(不用阻塞等待全部follwer同步完成),保证不了数据的一致性,所以是ap。但是从zk架构分析,zk在leader选举期间,会暂停对外提供服务(为啥会暂停,因为zk依赖leader来保证数据一致性),所以丢失了可用性,保证了一致性。再细点话,这个c不是强一致性,而是最终一致性。即上面的写案例,数据最终会同步到一致,只是时间问题。综上,zk广义上来说是cp,狭义上是ap。..https://blog.csdn.net/weixin_43883685/article/details/108208229京东面试官让你谈谈 zookeeper 和 eureka 哪个更好使?_ITPUB博客大家都说今年是互联网寒冬,但是前段时间有个读者很高兴的跟我聊天说他去京东了。我问他都问了什么问题?他说问了很多微服务相关的,其中有一个问题就是:同样是注册中心,你觉得 zookeeper 和 eureka 哪个更好?ITPUB博客每天千篇余篇博文新资讯,40多万活跃博主,为IT技术人提供全面的IT资讯和交流互动的IT博客平台-中国专业的IT技术ITPUB博客。http://blog.itpub.net/31558358/viewspace-2564424/
zk是CP系统需要从两个方面去考虑:
1>master宕机时 cp
2> 写数据时的CP 这里的C是最终一致性而不是强一致性,这时候可以看作ap
网上一篇博客这样写的,我觉这点不对,因为CAP理论是发生在发生网络分区时,考虑满足C还是满足A,对于ZK,网络分区时需要重新选取leader,这时候整个服务对外不可用,所以它是CP
eureka和zk客户端配置集群时都会写下来所有服务器的地址信息,当访问第 一个服务器没有响应时会访问第二个,zk的集群有主从的概念,eureka的集群节点都是平等的,相互向对方注册,没有主从之分
以上是关于zookeeper重难知识点汇总的主要内容,如果未能解决你的问题,请参考以下文章