首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java高频面试题- 每日三连问?【Day32】 — ZooKeeper篇(八)

Java高频面试题- 每日三连问?【Day32】 — ZooKeeper篇(八)

作者头像
浩说编程
发布2022-04-12 14:20:59
2200
发布2022-04-12 14:20:59
举报
文章被收录于专栏:Java经验之谈Java经验之谈

问题导读

一、说说Zookeeper 对节点的 watch 监听通知是永久的吗?为什么?

二、Zookeeper 的 java 客户端都有哪些?

三、ZAB 和 Paxos 算法的联系与区别?

01

说说Zookeeper 对节点的 watch 监听通知是永久的吗?为什么?

正经回答:

不是。

官方声明:一个 Watch 事件是一个一次性的触发器,当被设置了 Watch 的数据发生了改变的时候,则服务器将这个改变发送给设置了 Watch 的客户 端,以便通知它们。

为什么不是永久的?

举个例子,如果服务端变动频繁,而监听的客户端很多情 况下,每次变动都要通知到所有的客户端,给网络和服务器造成很大压力。

一般是客户端执行getData(“/节点 A”,true),如果节点 A 发生了变更或删 除,客户端会得到它的 watch 事件,但是在之后节点 A 又发生了变更,而客户端又没有设置 watch 事件,就不再给客户端发送。

在实际应用中,很多情况下,我们的客户端不需要知道服务端的每一次变动, 我只要最新的数据即可。

分享朋友圈,记录成长每一天~

02

Zookeeper 的 java 客户端都有哪些?

正经回答:

zk 自带的 zkclient 及 Apache 开源的 Curator。

03

ZAB 和 Paxos 算法的联系与区别?

正经回答:

相同点:

(1)两者都存在一个类似于 Leader 进程的角色,由其负责协调多个Follower 进程的运行

(2)Leader 进程都会等待超过半数的 Follower 做出正确的反馈后,才会将 一个提案进行提交

(3)ZAB 协议中,每个 Proposal 中都包含一个 epoch 值来代表当前的Leader 周期,Paxos 中名字为 Ballot

不同点:

ZAB 用来构建高可用的分布式数据主备系统(Zookeeper),Paxos 是用来构建 分布式一致性状态机系统。

- End -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩说编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正经回答:
  • 正经回答:
  • 正经回答:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档