【Kafka】Kafka Broker工作流程、节点服役与退役、副本、文件存储、高效读写数据-08

【Kafka】Kafka Broker工作流程、节点服役与退役、副本、文件存储、高效读写数据

  • [1. Kafka Broker 工作流程](#1. Kafka Broker 工作流程)
    • [1.1 Zookeeper 存储的 Kafka 信息](#1.1 Zookeeper 存储的 Kafka 信息)
    • [1.2 Kafka Broker总体工作流程](#1.2 Kafka Broker总体工作流程)
      • [1.2.1 Controller介绍](#1.2.1 Controller介绍)
    • [1.3 Broker 重要参数](#1.3 Broker 重要参数)
  • [2. 节点服役与退役](#2. 节点服役与退役)
  • [3. Kafka副本](#3. Kafka副本)

1. Kafka Broker 工作流程

1.1 Zookeeper 存储的 Kafka 信息

  1. 启动Zookeeper客户端
java 复制代码
[atguigu@hadoop102 zookeeper-3.5.7]$ bin/zkCli.sh
  1. 通过 ls 命令可以查看 kafka 相关信息
java 复制代码
[zk: localhost:2181(CONNECTED) 2] ls /kafka

1.2 Kafka Broker总体工作流程

  1. Broker注册:每个Kafka Broker在启动时会向ZooKeeper注册自己,ZooKeeper维护一个活动Broker列表,这个列表便于集群中的各个Broker相互发现并进行通信。

  2. Leader选举: Controller负责选举分区的领导者。当一个分区的领导者副本不可用时,Controller会选择一个新的副本作为领导者。选举结果通过ZooKeeper更新,并通知所有相关的Broker。

  3. 监控: Controller会监控Broker节点的变化。

  4. Controller决定选举:选举规则:在isr中存活为前提,按照AR中排在前面的优先。例如ar1,0,2, isr 1,0,2,那么leader就会按照1,0,2的顺序轮询

  5. Controller将节点信息上传到ZK

  6. Controller将领导者选举的结果和副本状态变更通知所有相关的Broker,确保它们有最新的元数据信息。

1.2.1 Controller介绍

在Kafka集群中,并不是每个Broker都有一个Controller,而是整个集群中只有一个活跃的Controller。这个Controller由一个Broker担任,其职责是管理和协调整个集群的元数据和状态变更。以下是关于Kafka Controller的详细介绍:

Kafka Controller职责

  1. 分区副本状态管理:
    领导者选举: 当一个分区的领导者副本不可用时,Controller负责选举新的领导者副本,确保分区始终有一个活跃的领导者来处理读写请求。
    副本同步: Controller监控副本的状态,并确保追随者副本与领导者副本保持同步。不同步的副本会被标记为"Out of Sync"(OOS)。
  2. Broker管理:
    Broker注册和注销: 当一个Broker加入或退出集群时,Controller会更新集群的元数据,并重新分配分区和副本,以确保负载均衡和高可用性。
    集群扩展和缩减: Controller处理Broker的增加或减少,进行相应的分区和副本重新分配。
  3. 分区重新分配:
    负载均衡: 当集群中负载不均衡时,Controller可以根据配置重新分配分区和副本,确保各个Broker的负载均衡。
    分区迁移: Controller协调分区和副本在不同Broker之间的迁移,实现高效的负载管理和故障恢复。
  4. 集群元数据管理:
    元数据更新: Controller管理集群范围内的所有元数据更新,包括主题创建、删除、配置变更等。
    通知Broker: 当元数据发生变化时,Controller通知所有相关的Broker,确保它们使用最新的配置信息。
  5. 故障检测和恢复:
    Broker故障检测: Controller定期检查Broker的状态,如果检测到某个Broker故障,它会触发相应的故障恢复机制。
    故障恢复: 在Broker故障的情况下,Controller重新分配该Broker上的分区和副本,确保消息的高可用性和数据的完整性。

Controller与Broker的关系

  • 控制器是一个特殊的Broker:虽然Controller执行管理和协调任务,但它本质上还是一个Broker,也处理正常的消息生产和消费请求。
  • 单一Controller:在任何时候,Kafka集群中只能有一个活跃的Controller。其他Broker在需要时可以通过选举成为Controller。

1.3 Broker 重要参数


2. 节点服役与退役

3. Kafka副本

// P31 TODO

相关推荐
Thomas.Sir1 天前
第21课:PyTorch|GPU多卡训练与分布式训练基础【让多卡并行成为你的加速引擎】
人工智能·pytorch·分布式
Cicada1281 天前
库存消息消费的正确性设计——从幂等窗口到批量流水线
分布式·系统架构
Nano叶落1 天前
Kafka 消费积压排查入门:Docker 搭环境亲手制造一次 ‘消息堵死‘,10 分钟看懂 Lag
kafka
Francek Chen2 天前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Gl�ria2 天前
Hadoop/YARN 集群缩容:下线DN节点
大数据·hadoop·分布式
吉甫作诵2 天前
Kafka 集群安装与运维实战:消费组排查、Offset 重置与副本重分配
大数据·运维·分布式·kafka·消息队列
imDwAaY2 天前
消息队列四大核心问题:顺序性、幂等性、可靠性与一致性
学习·kafka·rabbitmq
wno7043 天前
Spring Boot整合Kafka
spring boot·kafka
是Dream呀3 天前
Harness 工程:让 Agent 真正把任务做完
人工智能·分布式·缓存·agent