《深入理解kafka-核心设计与实践原理》第一章:概念

第一章:概念

[1.1 基本概念](#1.1 基本概念)

[1.1.1 基本角色与概念](#1.1.1 基本角色与概念)

[1.1.2 其他概念(AR、ISR、OSR、HW、LEO)](#1.1.2 其他概念(AR、ISR、OSR、HW、LEO))

[1.2 概念图](#1.2 概念图)

第一章:概念

  • 背景
    • Kafka起初是由LinkedIn公司采用Scala开发的,现已被捐给Apache
    • 尽管Kafka的核心是用Scala编写的,但它提供了兼容Java的API(因为Scala能在JVM上运行,并且与Java有很好的互操作性)
  • Kafka扮演的三大角色:
    • 消息系统(消息中间件):系统间解稿、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性
    • 存储系统(持久化功能):基于消息持久化功能和多副本机制,Kafka可作为长期的数据存储系统
    • 流式处理平台:

1.1 基本概念

1.1.1 基本角色与概念

  • Producer:生产者
  • Consumer:消费者
  • Broker:可以看作一个独立的【Kafka 服务节点】或【Kafka服务实例】。一个或多个broker组成一个Kafka集群
  • Zookeeper集群:早期Kafka依赖Zk进行集群管理、选举等操作。2.8.0中引入KRaft模式,允许用户尝试不依赖于Zookeeper的Kafka集群
  • Partition:分区。一个主题topic包含多个分区partition,一个分区只属于单个主题。同个分区内,通过offset能保证同分区有序,但跨分区不保证有序
  • Topic:主题。生产者负责将消息发送到特定的主题,而消费者负责订阅主题并进行消费
  • Replica:partition的副本(包含leader和follower两类)。通过增加副本数量可以提升容灾能力,一主多从,其中 leader副本负责处理读写请求,follower副本只负责与leader副本的消息同步
    • leader:leader挂了后,ISR中的follower有资格被选举成leader
    • follower:从leader拉取消息进行同步

总结:kafka通过partition的水平扩展支持高性能,通过replica提升容灾能力

1.1.2 其他概念(AR、ISR、OSR、HW、LEO)

AR,ISR,OSR(恒等式:AR = ISR + OSR)

  • AR(Assigned Replicas):分区中的所有副本
  • ISR(On-Sync Replicas):所有与leader副本保持一定程度同步的副本(包括 leader 副本在内)。这个一定程度是个范围,通过参数可以配置
  • OSR ( Out-of-Sync Replicas):与leader副本同步未到一定程度的副本(不包括leader副本)

总结

  • 正常情况下,所有的follower都应该与leader保持一定程度的同步:OSR=0,AR=ISR
  • leader 副本负责维护和跟踪 ISR 集合中所有 follower 副本的滞后状态,当 follower 副本落后太多或失效时,leader副本会把它从ISR集合中剔除。 如果 OSR 集合中有follower副本追上了 leader副本,那么leader副本会把它从 OSR 集合转移至 ISR 集合
  • 默认情况下, 当 leader 副本发生故障时,只有在 ISR 集合中的副本才有资格被选举为新的 leader, 而在 OSR 集合中的副本则没有任何机会

HW,LEO

理解:分区 ISR集合中的每个副本都会维护自身的 LEO,而ISR集合中最小的 LEO 即为分区的 HW ,对消费者而言只能消费 HW 之前的消息

  • HW(High Watermark):高水位。它标识 了一个特定的消息偏移量(offset),消费者只能拉取到这个 offset 之前的消息。下图中HW=6,消费者只能消费offset=0,5的消息
  • LEO(Log End Offset):标识当前日志文件中下一条待写入消息 的 offset,LEO的大小相当于当前日志分区中最后一条消息的offset值加1。上图中LEO=9

1.2 概念图

4个broker,3个partition,replica=3(一主两从)

相关推荐
Francek Chen18 小时前
【大数据处理与分析】数据仓库Hive:04 数据仓库Hive概述
大数据·数据仓库·hive·hadoop·分布式
Gl�ria20 小时前
Hadoop/YARN 集群缩容:下线DN节点
大数据·hadoop·分布式
吉甫作诵21 小时前
Kafka 集群安装与运维实战:消费组排查、Offset 重置与副本重分配
大数据·运维·分布式·kafka·消息队列
imDwAaY1 天前
消息队列四大核心问题:顺序性、幂等性、可靠性与一致性
学习·kafka·rabbitmq
wno7041 天前
Spring Boot整合Kafka
spring boot·kafka
是Dream呀2 天前
Harness 工程:让 Agent 真正把任务做完
人工智能·分布式·缓存·agent
yt004yt2 天前
绿岛数字化平台搭建:VOCs 监测与能碳数据一体化方案
大数据·分布式
天天喝旺仔2 天前
分布式服务容错实战:用 Sentinel 实现限流、熔断与降级
分布式·微服务·云原生·sentinel
音符犹如代码2 天前
Kafka 接入 AI 的三条路线:MCP 提案、会话记忆与实时上下文
java·大数据·ai·kafka