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

Kafka09-速答-尚硅谷

6-Kafka速答

文章目录

    • 6-Kafka速答
    • @[toc]
      • 6.1 Kafka 核心组件
      • 6.2 偏移量三剑客
      • 6.3 Controller 选举(ZK 模式)
      • 6.4 副本集合
      • 6.5 Producer 发送流程(简)
      • 6.6 ACK 应答策略
      • 6.7 消息重复 & 丢失根因
      • 6.8 Follower 拉取 Leader
      • 6.9 Consumer 拉取消息
      • 6.10 消费者重复 / 丢失
      • 6.11 全局有序保证

6.1 Kafka 核心组件

  • Broker:Kafka 服务器进程
  • Topic:逻辑消息队列
  • Partition:Topic 物理分片
  • Replica:分区副本
  • Leader / Follower:副本角色
  • Controller:集群“总管” Broker
  • ZK:旧版依赖 ZooKeeper 选举 Controller
  • Producer / Consumer / Consumer Group:生产与消费端

6.2 偏移量三剑客

缩写全称含义可见性
LSOLog Start / Stable Offset① 日志文件起始偏移量(文件名数字)<br>② 事务隔离级别可见性边界(read_committed 用)事务型消费者
LEOLog End Offset当前分区下一条待写入位置内部使用
HWHigh Watermark消费者可见“高水位”,< HW 的数据才允许被消费所有消费者

6.3 Controller 选举(ZK 模式)

  1. 所有 Broker 监听 /controller 临时节点
  2. 谁创建成功谁当选;节点消失即触发重新选举
  3. 纪元(epoch)+1,防止脑裂

6.4 副本集合

  • AR = Assigned Replicas:分区全部副本
  • ISR = In-Sync Replicas:正在同步的副本(含 Leader),满足 replica.lag.time.max.ms
  • OSR = Out-of-Sync Replicas:落后副本
  • 动态伸缩:副本达标从 OSR→ISR,落后从 ISR→OSR

6.5 Producer 发送流程(简)

  1. 序列化 → 分区器选分区 → 累加器缓存
  2. Sender 线程批量发送 → 对应分区 Leader
  3. 等待 ACK → 更新元数据 / 重试

6.6 ACK 应答策略

acks含义吞吐可靠性
0发到网络缓冲区即返回
1Leader 写盘即返回
-1/allISR 全部写盘才返回高(默认)

> 幂等 / 事务必须 acks=-1 且开启重试


6.7 消息重复 & 丢失根因

  • 丢失:禁重试 + 网络异常 / Leader 宕机
  • 重复:重试时网络抖动导致重复发送
  • 解决
    • 会话内重复:开启幂等(enable.idempotence=true)
    • 跨会话重复:使用事务 Producer

6.8 Follower 拉取 Leader

Follower 周期性发送 FetchRequest(携带当前 LEO)→ Leader 按 HW 截断数据返回 → Follower 写盘 → 更新自身 LEO → Leader 更新 HW


6.9 Consumer 拉取消息

Consumer 发送 FetchRequest(携带 offset)→ Broker 按 offset 顺序读日志 → 返回消息 → 本地处理 → 定时(或手动)提交 offset


6.10 消费者重复 / 丢失

  • 重复:自动提交间隔内崩溃,重启后从上次已提交 offset 重新消费
  • 丢失:已提交 offset 但消息未处理完即崩溃
  • 对策
    • 手动同步 commitSync / 异步 commitAsync
    • 消费-处理-提交原子化(幂等处理或事务)

6.11 全局有序保证

  1. 生产有序
    • 单分区 + 序列号 + 在途请求缓冲区 ≤5
  2. 存储有序
    • 同一分区顺序追加写日志
  3. 消费有序
    • 单分区仅被组内一个消费者按 offset 顺序读取
      > 多分区无法保证全局有序,只能分区内有序
http://www.dtcms.com/a/418306.html

相关文章:

  • Jenkins与GitLab-CI的技术对比分析
  • 2025 年 AI 智能体(Agent)发展全景:技术突破、场景落地与产业重构
  • 电子商务的网站建设名词解释网站设计的流程简答题
  • Spark源码中的线程池
  • Kafka06-进阶-尚硅谷
  • TDengine 时序函数 IRATE 用户手册
  • 网站模板源码下载广告网站建设
  • 一键部署 Spring Boot 到远程 Docker 容器
  • Docker 入门:容器化开发的强大工具
  • iOS 26 全景揭秘,新界面、功能创新、兼容挑战与各种工具在新版系统中的定位
  • 北京交易中心网站电商网站建设需要
  • 【ansible/K8s】K8s的自动化部署源码分享
  • C++STL之list
  • CentOS 7安装部署RabbitMQ
  • 本地怎么远程调试服务器
  • AndroidID重置功能开发
  • 【Byte 类型】编程基石:揭开 `Byte`(字节)的神秘面纱
  • 天津做网站哪家服务好北京正邦品牌设计公司
  • 外贸搜素网站android studio开发app实例
  • 5. Prompt 提示词
  • android 自定义样式 Toast 实现(兼容 Android 4.1+~Android 16(API 16))
  • android SharedPreferences 工具类 * 兼容 Android 16+ (API 16)
  • 宁波易通建设网站网站备案信息代码
  • 阿里云OpenLake及行业解决方案年度发布,助力千行百业Data+AI一体化融合
  • 独立站收款方式有哪些
  • 2025 年 Python 数据分析全栈学习路线:从入门到精通的进阶指南
  • 行业类网站应如何建设网站怎么建设以及维护
  • Go 和云原生 的现状和发展前景
  • C# 中Byte类型转化问题
  • 紫外UV相机在机器视觉检测方向的应用