当前位置: 首页 > news >正文

zk管理kafka有哪些不足

系列文章目录

文章目录

  • 系列文章目录
  • 一、不足
  • 二、zk全部宕机后,kafka集群能正常收发消息吗?
  • 三、controller功能和如何选举


一、不足

在一个健康的zk集群中,每时每刻只有一个健康的leader节点,zk必须保证半数以上的节点可用,才能保证zk集群可用。浪费资源。

zk和kafka是两个不同的系统,运维工作加倍。

controller节点存在单点故障。

controller宕机的话,新controller 需要从zk拉取所有分区的元数据信息,向每个broker节点发送leaderAndISR和updateMetaData请求,时间复杂度是O(num.partitions)。

broker宕机的话, 受控关机时间长,尤其是某个broker节点上分布的分区leader非常多时,需要重选leader,重新拉取元数据信息,分区越多重启时间越长,时间复杂度是O(partitions.leader)。

二、zk全部宕机后,kafka集群能正常收发消息吗?

能够正常收发消息。但是在kafka的server log里面,会报错:xxxx拒绝连接
原因是,kafka0.9以后,zk的功能被弱化,用来帮助kafka集群选举controller节点等基本操作,zk节点宕机后,kafka集群只是不能再发现新的broker节点加入了,但是不影响既有的节点收发日志。

三、controller功能和如何选举

  1. 分区 Leader 选举
    当某个 Broker 宕机或重新加入时,Controller 负责重新选举该 Broker 上的分区 Leader。
    确保每个分区都有一个 Leader 和多个 Follower(副本)。
  2. 分区分配与重平衡
    在集群扩容、Broker 故障恢复等情况下,Controller 会重新分配分区到不同的 Broker 上,以实现负载均衡。
    控制 Rebalance(再平衡)过程,确保所有副本同步。
  3. 元数据管理
    维护并更新集群的元数据信息,如:
    Topic 的分区数量
    分区的 Leader 和副本信息
    Broker 的状态(在线/离线)
    Controller 自己的状态(主/备)
  4. 监控 Broker 状态
    检测 Broker 是否正常运行。
    如果某个 Broker 失联,Controller 会触发相应的处理逻辑(如重新分配分区)。
  5. 控制副本同步
    确保副本之间的数据同步,防止数据丢失

集群的启动中,如何选出controller: 抢占机制

http://www.dtcms.com/a/392478.html

相关文章:

  • Java 大视界 -- Java 大数据机器学习模型在金融衍生品复杂风险建模与评估中的应用
  • 半导体制造中常见工艺之LPCVD
  • D01粉尘传感器详解(STM32)
  • 【小程序】微信小程序页面之间数据传递的五种方法
  • Taichi太极图形编程语言实践demo
  • [xboard]07-Makefile逐行分析1
  • 基于规则的专家系统对自然语言处理深层语义分析的影响与启示:历史演进、技术局限与未来融合路径
  • 鸿蒙分布式服务架构实战:从服务注册到远程调用的完整指南
  • PPT中设置和应用空白版式,和占位符干扰说再见
  • Elasticsearch 02
  • 283-基于Django的AppStore应用榜单数据可视化分析推荐系统
  • 星际漫游2025“∞无限”潮玩艺术周于顺德启幕,以东方符号重构潮流宇宙
  • Rust:重塑系统编程的未来,从安全到性能的技术革命
  • Vue 3 提供的 createElement 工具函数——h
  • 在开放系统互联参考模型(OSI)中,安全服务有哪些
  • 鸿蒙分布式文件操作实际开发案例
  • effect的参数和返回值
  • GAMIT 10.71 问题记录
  • 【愚公系列】《人工智能70年》032-机器翻译拆除语言樊篱(自然语言处理阔步前进)
  • 隐私与合规内建:Python医疗AI编程中的SBOM、依赖监测与威胁建模实践分析(下)
  • 基于C++11手撸前端Promise
  • C++学习笔记——内存管理
  • AI热点周报(09.14~09.20):Gemini集成到Chrome、Claude 强化记忆、Qwen3-Next快速落地,AI走向集成化,工程化?
  • 网络服务阶段——作业
  • OpenLayers地图交互 -- 章节三:选择交互详解
  • RocksDB:C++中的RAII锁应用解析
  • Linux920 RHEL 8 YUM配置;root密码;文件夹 磁盘分区 磁盘
  • yarn命令介绍(替代npm命令的JavaScript包管理工具)
  • MFC中开源布局库---ResizableLib
  • Scade 6 编译原理的参考实现 - LustreC