【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中排在前面的优先。例如ar[1,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

相关推荐
WHFENGHE7 小时前
输电线路分布式故障定位在线监测装置:技术解析与实际应用价值
分布式
johnny2339 小时前
Kafka系列之脚本使用
kafka
BD_Marathon9 小时前
【Kafka】
分布式·kafka
FinTech老王9 小时前
集中式 vs 分布式数据库:金融用户如何选择?——金仓数据库的双架构实践与选型指南
数据库·分布式·金融
Roye_ack11 小时前
【黑马点评 - 高级篇】Redis分布式缓存原理(Redis持久化 RDB AOF + 主从集群 哨兵 分片集群 + 多级缓存)
redis·分布式·缓存·aof·redis持久化·rdb·redis主从哨兵分片集群
b***594311 小时前
分布式WEB应用中会话管理的变迁之路
前端·分布式
Z_Easen11 小时前
RabbitMQ 技术深度解析:从核心概念到可靠性实践
分布式·rabbitmq
7***374511 小时前
HarmonyOS分布式能力的核心技术
分布式·华为·harmonyos
q***751812 小时前
RabbitMQ 客户端 连接、发送、接收处理消息
分布式·rabbitmq·ruby
昵称为空C13 小时前
kafka的替代品redpanda部署与SpringBoot集成使用案例
spring boot·后端·kafka