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

kafka kraft 模式简介

一、背景

        Zookeeper 提供了配置服务、分布式同步、命名服务、Leader 选举和集群管理等功能,很多大数据组件都依赖 Zookeeper 来构建,Apache Kafka 也不例外。但是随着 Kafka 功能的演进和应用场景越来越多,也暴露出了许多基于 Zookeeper 的问题:

  • 基于 Zookeeper 的协作模式,使得 Kafka 的集群一致性维护越来越复杂;
  • 受到 Zookeeper 性能的限制,使得 Kafka 无法支撑更大的集群规模;
  • 并且 Zookeeper 自身带来的运维复杂性和产品稳定性,也同样将复杂度和风险负担传递到 Kafka 运维人员;

因此作为 Zookeeper 的替代,Kafka 3.3.1 提供了 KRaft 元数据管理组件,下图分别是 Zookeeper 模式和 KRaft 模式的 Kafka 部署架构图:

在 KRaft 模式下:

  • 运维部署:3 个 Controller 节点;0~N 个 Broker 节点。Kafka 节点可以同时承担 Controller 和 Broker 两个角色,因此一套最小生产集群只需要 3 个节点。在测试环境更可以只以 1 节点模式就轻量地拉起一个 Kafka 集群。
  • 通信协调:Controller 节点底层通过 Raft 协议达成一致,Controller 的内存状态通过 #replay Raft Log 来构建,因此 Controller 之间的内存状态都是一致的;Broker 通过订阅 KRaft Log 来维护和 Controller 一致的内存状态,并通过事件驱动的方式执行 Partition Reassignment 之类的操作来实现集群最终一致性协调。整个集群的状态维护和一致性协调都是基于 KRaft 中的事件。

二、KRaft 的核心原理

        KRaft 模式利用 Raft 共识算法来管理集群元数据。Raft 是一种分布式一致性算法,通过选举 Leader 和日志复制机制确保集群状态的一致性。

2.1 角色划分

  • Controller 节点:所有的 Controller 节点共同组成一个 Raft 仲裁组。
  • Broker 节点:负责存储和传输数据。

2.2 Raft仲裁组

  • Raft 组中会选举出一个 Active Controller(Leader),其他 Controller 作为 Follower。
  • 所有元数据的变更都必须由 Active Controller 发起,并复制到 Follower Controller,达成多数派确认后才会提交。这确保了元数据的一致性。

2.3 元数据日志

  • KRaft 模式将集群的元数据变化作为一种特殊的 内部日志(_cluster_metadata)进行存储和复制。
  • 这个日志记录了所有元数据的变更历史,类似于 Zookeeper 的 ZNode。通过重发这个日志,任何节点都可以重建出完整的元数据状态。

2.4 工作流程

  1. 当一个管理员创建一个新主题时,请求会发送到某个 Broker。
  2. 该 Broker 将请求转发给 Active Controller。
  3. Active Controller 将“创建主题”这个操作作为一条记录追加到元数据日志中。
  4. 一旦这条记录被 Reft 仲裁组中的多数派确认并提交,Active Controller 就会更新其内存中的元数据缓存,并将更新通知给所有相关的 Broker。
  5. 所有 Broker 随后更新自己的元数据缓存,新主题就创建成功了。

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

相关文章:

  • 【Html模板】赛博朋克风格数据分析大屏(已上线-可预览)
  • 怎么查网站备案号济南市章丘区建设局网站
  • 颠覆编码范式:Cursor 2.0五大新特性深度解析与AI编程未来洞察
  • 科技引领,档案管理更高效之智慧档案馆三维立体恒温恒湿消毒净化系统
  • MySQL的SUBSTRING函数详解与应用
  • 微企点建站效果付费合肥网络推广外包
  • 企业级管理平台项目设计、架构、业务全解之平台篇
  • android TAB切换
  • 免费试用网站源码上海网站建设穹拓
  • Linux的df和du
  • 【保姆级教程】Debian 服务器 MariaDB/Mysql 配置 Windows 远程连接全流程
  • JAVA算法练习题day58
  • linux-用户和组权限
  • 基于Vue+Python+Orange Pi Zero3的完整视频监控方案
  • 若依开源项目做导入数据时同步新增字典,页面下拉框与表格未同步更新问题
  • 网站权重多少4赤峰网站建设哪个服务好
  • 珠海seo海网站建设南京做网站建设搭建的公司
  • 仓储物流人力如何管理?实时看板动态展示进度,支持管理者即时调整人力
  • 系统架构设计师备考第62天——嵌入式系统软件架构设计方法
  • LeetCode 刷题【143. 重排链表】
  • 网站建设与管理工资wordpress仪表盘添加内容
  • 常见的分布式系统面试题清单
  • 基于 U-Net 的医学图像分割
  • 【图像处理基石】多频谱图像融合算法入门
  • 室温反应蒸发+200℃退火调控 MoOₓ/NiOₓ薄膜:光伏空穴传输材料性能优化与效率潜力(>25%)分析
  • 微算法科技(NASDAQ MLGO):DPoS驱动区块链治理与DAO机制融合,共筑Web3.0坚实基石
  • 视频直播点播平台EasyDSS:助力现代农业驶入数字科技“快车道”
  • 迈网科技 官方网站网站建设调研问卷
  • vue 实现自定义message 全局提示
  • 电商网站里的图片网站开发中 视频播放卡