1 zk如何保证下面这些的?

ZooKeeper 非常快速且非常简单。但是,由于它的目标是成为构建更复杂服务(例如同步)的基础,因此它提供了一组保证。这些是:

顺序一致性 - 来自客户端的更新将按发送顺序应用--这个由zid(每个操作都会有个累加id)和队列保证

原子性 - 更新要么成功要么失败。没有部分结果。(主进行的更改操作,都需哟选举过半,如果不过半需要回滚)

单一系统映像 - 无论客户端连接到哪个服务器,它都会看到相同的服务视图。即,即使客户端故障转移到具有相同会话的不同服务器,客户端也永远不会看到系统的旧视图。(通过sync 同步实现,因为过半写的特点,所以从节点数据有可能不一致,读取的时候可以先执行sync 同步主的最新数据)

可靠性 - 应用更新后,它将从那时起持续存在,直到客户端覆盖更新。(主挂了可以选举,集群可以承受小于一半的机器挂掉还能正常跑)

及时性 - 系统的客户视图保证在特定时间范围内是最新的。

2 zk分布式锁如何实现的

3 zk选举过程

ZAB实现了选举和数据同步

4 zk如何实现每个session会话顺序执行的

队列,执行zid事务id累加的。

5 zk选举主节点会出现不可用吗?怎么是高可用?

选举-高可用

1 zk通过选举实现高可用,主挂了从通过选举选出主

2 zk选举会有不可用状态,会停止服务

3 zk选举很快,200毫秒内,没有出现坍塌(只不可用)

6当现有从节点挂掉,或者有新的从节点加入进来,集群是怎么运作的?

心跳

7 因为数据是最终一致,那如果master做了操作只同步了3个节点还有一个节点没同步到数据,这个时候别的客户端读到了老数据,不就不一致了吗?

查询

当会话(zk客户端)查询当前接入的从节点(follower)的时候 从节点会去主节点(leader)去同步最新的数据然后给zk客户端。

问题:那从节点每次都要问一下主节点要最近数据,那丛节点存数据干嘛?

从节点存数据是解决数据持久的问题,而每次询问是解决数据最新避免脏数据问题。

更新

当前会话(zk客户端)做更新操作提给从节点(follower),从节点会把这个操作提给主节点(leader),只有主节点才有权利变更数据,主节点会发送广播,通知所有节点变更,主节点收到过半通过后,然后发送成功的通知(两阶段提交),然后从节点就有了最新的数据。

问题:如果两阶段提交,最后同意一些从节点没收到怎么办?

因为第一阶段数据已经存了,数据已经持久了,再下次查这个数据的时候,从节点会询问主节点从而获得最新的数据。

leader挂了

会进行选举,选举期间,拒绝所有请求。

问题:那不就不可用了吗?

根据实际官网测试,选举会小于200毫秒,实际再5万左右并发的情况下,并没有造成不可用。

8 zk与dubbo如何运作的

zookeeper自问自答相关推荐

  1. 干货!JAVA容器-自问自答学HashMap

    前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...

  2. [python]自问自答:python -m参数? (转)

    python -m xxx.py 作用是:把xxx.py文件当做模块启动 但是我一直不明白当做模块启动到底有什么用.python xxx.py和python -m xxx.py有什么区别! 自问自答: ...

  3. JAVA容器-自问自答学HashMap

    前言 这次我和大家一起学习HashMap,HashMap我们在工作中经常会使用,而且面试中也很频繁会问到,因为它里面蕴含着很多知识点,可以很好的考察个人基础.但一个这么重要的东西,我为什么没有在一开始 ...

  4. 分享蔡澜老师的自问自答

    蔡澜老师的个人网站上有个「访问自己」的板块,里面记录了很多蔡澜老师的「自问自答」,问题和回答都很有趣,从中挑选了一部分.喜欢这种洒脱率真的生活态度. 附上网址 http://blog.sina.com ...

  5. Golang 数组的一些自问自答

    基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题 image-20211227100817481 所有代码基于Go-1.17.一些研究Go数组的自问自答,可以考虑作为面试题. 问题: ...

  6. Maven 自问自答

    Maven 自问自答 Maven 自问自答 maven有什么用 POM 是一个什么东西 解读pom Build Lifecycle maven 三条指令运行web项目 maven常用指令 maven结 ...

  7. vue 源码自问自答-响应式原理

    vue 源码自问自答-响应式原理 最近看了 Vue 源码和源码分析类的文章,感觉明白了很多,但是仔细想想却说不出个所以然. 所以打算把自己掌握的知识,试着组织成自己的语言表达出来 不打算平铺直叙的写清 ...

  8. RT_Thread自问自答

    在看韦东山老师"RT-Thread内部机制"的视频,挺有意思的,有些概念的理解还是要深究一下,不然可能就是"我知道,这不就是那个....那个....那个",哪个 ...

  9. 自问自答:在VB中如何实现像C++一样printf的功能

    问: 每个整型都转换成5位的字符串,不足的在前面补0.比如:1转换成"00001",10转换成"00010".怎么实现? 答: format(1,"0 ...

最新文章

  1. zz Expect的安装
  2. 程序设计分析(开篇)——混沌初开,顿悟设计
  3. Oracle 10g RAC修改IP/VIP地址示例
  4. php对帖子分类,php – MySQL:从类别中获取帖子
  5. python心理学实验程序_心理学实验程序编程(python)
  6. python 实现对地图的点击_python实现Pyecharts实现动态地图(Map、Geo)
  7. 【数据库实验】《小型MIS的开发》— JavaFx 开发 民航票务管理系统
  8. mex 1 hello,world
  9. 如何保存PPT的背景图片
  10. Pyrene-PEG-Biotin,芘丁酸聚乙二醇生物素,Biotin-PEG-Pyrene
  11. 2021周记16:父母和4平米的出租房
  12. 苹果系统和安卓系统的区别_又一款影视APP,这次支持苹果安卓双系统!
  13. 微服务通用的“用户角色权限”平台设计
  14. C语言农历天干地支,求思路。农历年月日时推天干地支
  15. 推荐几个 Go 圈子的高质量肝帝
  16. js引用本地json文件
  17. 密码主页jQuery插件的应用(注册时的验证)
  18. 阿里技术人才能力模型(深度解读系列之一)
  19. 桌面管理landesk太古案例
  20. 深度解析SQL和NoSQL数据库,掌握主流数据库【两万字解析】

热门文章

  1. 阻容降压电路:每个元器件计算选型!
  2. 蓝桥杯刷题冲刺 | 倒计时14天
  3. vue使用three.js加载.FBX模型文件
  4. 《算法》中的红黑树实现
  5. 手机老是收不到短信验证码?我来告诉你为什么!
  6. [N1CTF 2022] solve_pow,baby_N1ES
  7. iOS UITextField自动换行
  8. Intel和AMD处理器各有什么特点?该如何选择?
  9. 运行pixellib出现错误
  10. linux7切换图形界面,CentOS 7 DOS界面与图形界面切换