zookeeper是啥?在kafka中有什么作用

news2024/11/15 7:10:21

一、Zookeeper是啥

问AI,它是这么说:

ZooKeeper是一个开源的分布式协调服务

ZooKeeper最初由雅虎研究院开发,用于解决大型分布式系统中的协调问题,特别是为了避免分布式单点故障。它被设计成一个简单易用的接口集,封装了复杂的分布式一致性协议。这使得开发者可以更专注于业务逻辑,而不是底层的协调和同步问题。

官网定义:

Apache ZooKeeper 致力于开发和维护一个支持高度可靠的分布式协调的开源服务。

zooKeeper 是用于维护配置信息,命名,提供分布式同步和提供组服务的集中式服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实施它们时,都会进行很多工作来修复不可避免的 bug 和竞争条件。由于难以实现这类服务,因此应用程序最初通常会跳过它们,这会使它们在存在更改的情况下变得脆弱并且难以管理。即使部署正确,这些服务的不同实现也会导致管理复杂。

二、在kafka中有什么作用?

Kafka使用zookeeper的分布式协调服务,将生产者,消费者,broke结合在一起;借助zookeeper,kafka能够将生产者,消费者和broker在内的所有组件在无状态的条件下建立起生产者和消费者的订阅关系,实现生产者的负载均衡。

主要作用如下:

1.注册并监控broker,调整负载均衡

kafka的每个broker在启动时,都会在zk中注册,告诉zk其brokerid,保存在zk目录:broker.id/brokers/ids,当节点失效时,zk就会删除该节点,能够很方便的监控整个集群broker的变化,及时调整负载均衡。

2. 管理并维护topic、分区、broker的对应关系

在kafka中可以定义很多个topic,每个topic又被分为很多个分区。一般情况下,每个分区独立存在一个broker上,所有的这些topic-分区-broker的对应关系都有zk进行维护;

3. 消费者注册和维护

3.1 注册新的消费者

当有新的消费者注册到zk中,zk会创建专用的节点来保存相关信息,路是/consumers/{group_id}/  [ids,owners,offset],其中:

Ids:记录该消费分组有几个正在消费的消费者,

Owmners:记录该消费分组消费的topic信息,

Offset:记录topic每个分区中的每个offset

3.2 监听消费者分组中消费者的变化

监听/consumers/{group_id}/ids的子节点的变化,一旦发现消费者新增或者减少及时调整消费者,实现消费者负载均衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2102998.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

家教管理系统设计与实现

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装家教管理系统软件来发挥其高效地信息处理的作用&#xff0c…

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 09部署OSPF

本章的目的是帮助网络工程师确定网络的理想 OSPF 配置。本章将回答以下问题 应何时在数据中使用OSPF ?配置 OSPF 的关键设计原则是什么?OSPFv2 和 OSPFv3 之间有什么区别,应如何使用?如何在路由协议栈中配置 OSPF ?如何在服务器上配置 OSPF,例如为容…

【Python机器学习】词向量推理——词向量

目录 面向向量的推理 使用词向量的更多原因 如何计算Word2vec表示 skip-gram方法 什么是softmax 神经网络如何学习向量表示 用线性代数检索词向量 连续词袋方法 skip-gram和CBOW:什么时候用哪种方法 word2vec计算技巧 高频2-gram 高频词条降采样 负采样…

SpringMvc--后续(参数问题)

参数问题 package com.hwq.controller;import com.hwq.beans.User; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframewo…

vllm源码解析(一):整体架构与推理代码

vlllm官方代码更新频发,每个版本都有极大变动, 很难说哪个版本好用. 第一次阅读vllm源码是0.4.0版本,对这版圈复杂度极高的调度代码印象深刻 0.4.1对调度逻辑进行重构,完全大变样, 读代码速度快赶不上迭代的速度了。 现在已经更新到0.5.4, 经过长时间观察,发现主要的…

认知杂谈34

今天分享 有人说的一段争议性的话 I 环境的影响 I 首先得说说,环境这东西对人的影响真不是盖的。你要是老待在一个死气沉沉的地方,那你的激情和梦想,可能慢慢就会被磨得平平无奇。 I 激情的消逝 I 本来你可能是满怀激情,想要大干一…

HMI触屏网关-VISION如何与Node-red通信

上文:HMI触屏网关-VISION如何与Modbus TCP从机通信-CSDN博客 1. Node-red启用HTTP监听 HTTP监听,用于模拟WebAPI服务端,接收WebAPI客户端GET请求。 启用HTTP监听服务,选择请求方式GET;URL自定义,本示例设…

人活着的意义是什么

大家好,我是凡人。 最近很多行业已经受到了 AI 带来的冲击,造成现在网络上一些消极情绪滋生。 这篇文章来源于我回答了一个知乎小哥的问题后,有了点思考,他的问题是这样的“可能我们普通人一辈子都无法为人类社会做出大的贡献&a…

自动化测试概念(1)

常⻅⾯试题 1.⾃动化测试能够取代⼈⼯测试吗? ⾃动化测试不⼀定⽐⼈⼯测试更能保障系统的可靠性,⾃动化测试是测试⼈员⼿⼯编写, 后续如果有功能的变更⾃动化也需要进⾏不定期的维护和更新。 2.⾃动化测试可以⼤幅度降低⼯作量&#xff1…

腾讯40岁老哥毕业了

我的朋友岳京杭发了篇文章,谈到了一位腾讯站up主「老龚40了啥也不是」 近期离职腾讯的故事。 2019年年底,36岁的老龚跳槽去了深圳腾讯,北漂变深漂。老龚合租在腾讯公司附近,月租2000,老婆孩子依然在长沙,老…

远程桌面 Rust Desk 自建服务器

因为某些原因(诈骗),Rush Desk 服务已暂停国内访问,今天我们介绍如何利用自己的服务器搭建 Rust Desk 远程桌面,低延迟电脑远程手机,手机远程电脑等 一、准备工作 准备一台服务器,我用的腾讯云服务器,一年…

全国地市未来产业水平数据集(2008-2023年)

未来产业,作为驱动经济社会高质量发展的核心引擎,是指依托科技创新和模式创新,引领全球新一轮科技革命和产业变革,具有前瞻性、先导性、战略性的新兴产业领域。也是实现生产力大解放,推动生产力质的跃迁并形成新质生产…

2024华为OD机试真题-反射计数Python-C卷D卷-200分

2024华为OD机试最新E卷题库-(C卷+D卷+E卷)-(JAVA、Python、C++) 目录 题目描述 输入描述 输出描述 用例1 题目解析 代码 题目描述 给定一个包含 0 和 1 的二维矩阵。 给定一个初始位置和速度,一个物体从给定的初始位置出发,在给定的速度下进行移动,遇到矩阵的边缘则…

机器学习实战篇——肿瘤良性/恶性分类器(二元逻辑回归)

机器学习之实战篇——肿瘤良性/恶性分类器(二元逻辑回归) 前言数据集和实验文件下载相关文章推荐实验过程导入相关模块数据预处理手写二元逻辑回归模型(小批量梯度下降)sklearn逻辑回归器 前言 实验中难免有许多缺陷和错误&#…

20240903软考架构-------软考111-115答案解析

每日打卡题111-115答案 111、【2016年真题】 难度:一般 实时操作系统(RTOS)内核与应用程序之间的接口称为( )。 A.I/O接口 B.PCI C.API D.GUI 答案&#xff…

HTML音乐圣诞树

目录 写在前面 完整代码 下载代码 代码分析 系列文章 写在最后 写在前面 圣诞节(Christmas)亦称耶稣圣诞节、主降生节,天主教亦称耶稣圣诞瞻礼。译名为“基督弥撒”,它源自古罗马人迎接新年的农神节,与基督教本无关系。在基督教盛行罗马帝国后,教廷随波逐流地将这…

【Java那些事】关于Git的使用

目录 下拉代码仓库篇 上传代码篇 下拉代码仓库篇 第一步,下拉代码,复制链接。 (从开源网站上复制链接) (建立本地仓库) 这里的URL一般都会自动填充刚刚复制的链接【瞅瞅,确保是想要的那个项…

【pycharm-乱码】简单记录一下都有哪些涉及编码

控制台 路径:setting-》general-》console setting-》editor-》file encodings 路径:setting-》editor->file and code templates #!/user/bin/env python3 # -*- coding: utf-8 -*-setting->tools->ssh terminal

QT入门-安装

文章目录 起步安装QT在线安装安装过程配置环境变量更新或删除Qt 平台需求 界面简介绍创建第一个项目 起步 安装QT 您可以使用在线或离线安装程序安装Qt框架和工具,或者自己构建源包。 安装程序允许您下载并安装以下组件: Qt库,为特定的开发平台(操作…

登录-异步请求用户数据无法保存-bug

bug情况: 在进行登录时需要发送两次一次是登录请求,一次是登录后获取用户信息,但是浏览器本地存储没有成功保存user信息 原登录方法: // 账号密码登录 function login() {formRef.value.validate((valid) > {if (valid) {//发…