Java最全面试题->Java主流框架->Zuukeeper面试题

ops/2024/10/25 7:55:38/

文章目录

  • Zuukeeper
    • ZooKeeper是什么?
    • ZooKeeper和dubbo的区别?
    • Zookeeperjava客户端都有哪些?
    • ZooKeeper提供了什么?
    • 说说ZooKeeper文件系统
    • 说说ZAB协议?
    • Znode有哪些类型?
    • Zookeeper节点宕机如何处理?
    • Zookeeper有哪几种几种部署模式?
    • Zookeeper的典型应用场景?
    • 说一下Zookeeper Watcher机制
    • 客户端注册Watcher的流程?
    • 服务端处理Watcher的流程?
    • 客户端回调 Watcher流程?
    • Zookeeper对节点的 watch监听通知是永久的吗?为什么不是永久的?
    • 说说ACL权限控制机制
    • 服务器有哪些角色?
    • Zookeeper 下 Server工作状态有哪些?
    • 集群支持动态添加机器吗?
    • 什么是Chroot?

Zuukeeper

下边是我自己整理的面试题,基本已经很全面了,想要的可以私信我,我会不定期去更新思维导图
哪里不会点哪里
在这里插入图片描述

ZooKeeper是什么?

  • ZooKeeper是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
  • 分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。
  • Zookeeper保证了如下分布式一致性特性:
    1. 顺序一致性
    2. 原子性
    3. 单一视图
    4. 可靠性
    5. 实时性(最终一致性)
  • 客户端的读请求可以被集群中的任意一台机器处理,如果读请求在节点上注册了监听器,这个监听器也是由所连接的zookeeper机器来处理。对于写请求,这些请求会同时发给其他zookeeper机器并且达成一致后,请求才会返回成功。因此,随着zookeeper的集群机器增多,读请求的吞吐会提高但是写请求的吞吐会下降。
  • 有序性是zookeeper中非常重要的一个特性,所有的更新都是全局有序的,每个更新都有一个唯一的时间戳,这个时间戳称为zxid(Zookeeper Transaction Id)。而读请求只会相对于更新有序,也就是读请求的返回结果中会带有这个zookeeper最新的zxid。

ZooKeeper和dubbo的区别?

  • Zookeeper:
    zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,
    简单来说就是ip地址和服务名称的对应关系。当然也可以通过硬编码的方式把这种对应关系在调用方业务代码中实现,但是如果提供服务的机器挂掉,调用者无法知晓,如果不更改代码会继续请求挂掉的机器提供服务。zookeeper通过心跳机制可以检测挂掉的机器并将挂掉机器的ip和服务对应关系从列表中删除。至于支持高并发,简单来说就是横向扩展,在不更改代码的情况通过添加机器来提高运算能力。通过添加新的机器向 zookeeper注册服务,服务的提供者多了能服务的客户就多了。
  • dubbo:
    是管理中间层的工具,在业务层到数据仓库间有非常多服务的接入和服务提供者需要调度,dubbo提供一个框架解决这个问题。
  • zookeeper和 dubbo的关系:
    Dubbo将注册中心进行抽象,它可以外接不同的存储媒介给注册中心提供服务,有 ZooKeeper, Memcached, Redis等。

Zookeeperjava_24">Zookeeperjava客户端都有哪些?

zk自带的 zkclient
Apache开源的 Curator

ZooKeeper提供了什么?

文件系统
通知机制


http://www.ppmy.cn/ops/128275.html

相关文章

开启RefCell debug_refcell feature查看借用冲突位置

文章目录 背景分析解决方法 本文解决两个问题: 开启rust源码库中的feature开启debug_refcell feature的方法查看 borrow 借用冲突的位置 背景 使用 RefCell 来实现内部可变性是在 Rust 开发中常用的方式,但是当逻辑复杂起来,常常会有可变借…

C++(面向对象、封装性、构造函数)

面向对象 三大特征:封装、继承、多态 C中的class是从C的struct扩展来的,两者的区别是默认访问权限不同。 struct的默认访问权限是公有的public class默认访问权限是私有的private 访问权限 类的内部派生类(子类&#xff09…

RK3568开发板(debain系统)与Ubuntu使用nfs共享文件

VMware虚拟机 Ubuntu18.04 【网络配置陈桥接模式】 RK3568开发板【我是用讯为的RK3568】 网线连接路由器或者和电脑直连(J13网口) 1、Ubuntu上nfs服务器安装 1.1、命令如下: sudo apt-get update sudo apt-get install nfs-kernel-server1…

缓存预取文章比较分析

这篇文章主要记录调研的cache prefetch部分有价值的论文,并给出一些总结 Baleen 核心内容 ML learning-based admission policy prefetch.exploit a new cache residency model to guide model training. 首先对 access pattern 进行了统计分析,提取…

【火山引擎】语音识别 |流式语音识别 | python

目录 一 准备工作 二 流式语音识别 三 实践 模型广场:账号登录-火山引擎

软考——计算机网络概论

文章目录 🕐计算机网络分类1️⃣通信子网和资源子网2️⃣网络拓扑结构3️⃣ 计算机网络分类3:LAN MAN WAN4️⃣其他分类方式 🕑OSI 和 TCP/IP 参考模型1️⃣OSI2️⃣TCP/IP🔴TCP/IP 参考模型对应协议 3️⃣OSI 和 TCP/IP 模型对应…

CSP-S 信心赛 飚速布 题解

飚速布 2024.10.24 T4 题意 n n n 个数 a 1 , a 2 , a 3 , … , a n a_1, a_2, a_3, \dots, a_n a1​,a2​,a3​,…,an​。有 m m m 轮操作,第 i i i 轮操作选择恰好 k k k 个数使它 1 1 1。 设 U [ 1 , n ] ∩ N U [1, n] \cap \mathbb{N} U[1,n]∩N&a…

java项目使用HttpServletRequest request接参,怎么获取参数的值,怎么获取form值,怎么获取body值

java项目使用HttpServletRequest request接参,怎么获取参数的值,怎么获取form值,怎么获取body值 1.假设你的方法是这个样子的 public ResponseEntity<String> GetUserInfo(HttpServletRequest request)