Kafka04-知识速记

Kafka04-知识速记

按"概念→通信→分区→可靠性→副本→性能"逻辑顺序排列,答案均≤2 行。原博客地址:https://mp.weixin.qq.com/s/lfqZinenUoWPp62HGfv6tw

文章目录

  • Kafka04-知识速记
  • [1. 基础概念](#1. 基础概念)
  • [2. 通信流程(启动→生产→消费)](#2. 通信流程(启动→生产→消费))
  • [3. 分区策略](#3. 分区策略)
  • [4. 消费者组与 Rebalance](#4. 消费者组与 Rebalance)
  • [5. 可靠性三板斧](#5. 可靠性三板斧)
  • [6. 副本同步(HW/LEO 机制)](#6. 副本同步(HW/LEO 机制))
  • [7. 为什么去 ZooKeeper(≥v2.8 KRaft 模式)](#7. 为什么去 ZooKeeper(≥v2.8 KRaft 模式))
  • [8. Kafka "快"的三板斧](#8. Kafka “快”的三板斧)

1. 基础概念

名词 一句话解释
Record 一条消息。
Topic 消息的分类目录。
Partition Topic 的水平分片,提升并发与伸缩。
Offset 分区级别自增序号,标识消息位置。
Broker Kafka 进程/服务器实例。
Leader/Follower 每分区一个对外服务的 Leader,其余 Follower 仅冗余。
ISR 与 Leader 差距 ≤ replica.lag.time.max.ms 的副本集合。
Producer 发消息端。
Consumer 读消息端。
Consumer Group 组内共享订阅,组间广播;天然支持点对点 vs 发布订阅。
Coordinator 为消费者组做分区分配与 Rebalance。
Controller 集群"班长",负责 Leader 选举与元数据变更。

2. 通信流程(启动→生产→消费)

  1. Broker 启动 → 向 ZK 注册临时节点。
  2. 客户端(生产/消费)通过 bootstrap.servers 任连一台 → 取完整元数据 → 再与对应 Broker 建连。
  3. 生产者按分区策略把批次消息发给 Leader;消费者连 Leader 拉取。

3. 分区策略

策略 行为
指定 key hash(key) % 分区数 → 相同 key 落同分区(分区有序)。
无 key 轮询或随机。
自定义 实现 Partitioner 接口。

> 目的:数据分散 → 并行写/读 → 横向扩展。


4. 消费者组与 Rebalance

  • 理想数:消费者数 = 总分区数。
  • 触发:成员增减、分区数变、订阅正则匹配到新 Topic。
  • 过程:JoinGroup → 选群主 → 群主用策略算分配 → SyncGroup 下发。
  • 影响:Rebalance 期间全组停止消费(类似 STW)。

三种分配策略

名称 特点
Range(默认) 按主题序分配,多主题时易倾斜。
RoundRobin 全局轮询,均衡但无状态。
Sticky 在均衡前提下尽量保留上次分配,减少连接抖动。

5. 可靠性三板斧

环节 配置要点
生产者 acks=all + 大 retries + 异步回调。
Broker replication.factor≥3 & min.insync.replicas≥2 & unclean.leader.election.enable=false。
消费者 enable.auto.commit=false 手动提交;auto.offset.reset=earliest 防丢。

6. 副本同步(HW/LEO 机制)

  • HW:已提交边界,消费者可见。
  • LEO:下条待写位移。
  • 同步节奏:Follower 拉取 → 更新自身 LEO → Leader 取最小 LEO 更新 HW → 下次响应带回 HW → Follower 更新 HW。

7. 为什么去 ZooKeeper(≥v2.8 KRaft 模式)

  • 少运维一套 ZK 集群,降复杂度。
  • ZK 不适合高频写(如位移),易成瓶颈。
  • 自管元数据可水平扩展,支持百万分区级。

8. Kafka "快"的三板斧

  1. 顺序追加写磁盘 → 磁盘顺序 IO ≈ 网络 IO。
  2. PageCache + 零拷贝(mmap 写,sendfile 读)→ 省一次内存拷贝。
  3. 批量压缩(生产端攒批、压缩,Broker 原样存,消费端解压)→ 降网络与磁盘量。
相关推荐
筑梦之路2 天前
docker-compose方式部署kafka集群(Kraft方式)——筑梦之路
docker·容器·kafka
用户1494484813203 天前
同为消息队列,RocketMQ 和 Kafka 的底层设计差在哪?
kafka
开开心心就好4 天前
办公软件卸载不干净?专用工具一键清残留
java·前端·人工智能·智能手机·kafka·excel·memcache
ly76895 天前
ISR 收缩与 HW 推进:副本同步的边界条件与 UnderReplicated 排障
数据库·kafka·c#·linq·isr·hw·副本同步
此时不提桶,更待何时7 天前
06-09-A-Kafka架构与存储原理详解
架构·kafka·linq
醉颜凉7 天前
Kafka 与 RabbitMQ/RocketMQ 选型对比:场景匹配、性能基准与迁移成本
kafka·消息队列·rabbitmq·rocketmq·中间件选型
筑梦之路8 天前
K8S yaml文件部署kafka集群(Kraft模式)——筑梦之路
容器·kafka·kubernetes
筑梦之路8 天前
Kafka KRaft 模式 Kubernetes 部署手册(StatefulSet + apache/kafka 官方镜像)——筑梦之路
kafka·kubernetes·apache
智码看视界9 天前
技术选型指南:Pulsar vs Kafka:消息队列选型终极对比与压测
kafka·消息队列·pulsar·消息中间件·流处理·高吞吐·架构选型
俊哥大数据9 天前
Flink1.20.3 实时消费 Kafka 数据并解析入湖 Paimon1.4.2 全流程实战
分布式·flink·kafka·数据湖·paimon