Kafka 知识体系梳理

Kafka 知识体系梳理

一、核心概览

Kafka 作为分布式流处理平台,围绕 高性能、一致性、高可用 构建核心能力,通过消息系统特性解决异步通信需求,凭借架构设计支撑高吞吐与水平扩展。

二、关键特性与设计

(一)为什么高性能?

  • partition 并发:基于分区实现并行读写,提升处理效率
  • 顺序读写磁盘:规避随机 IO 开销,利用磁盘顺序访问优势
  • page cache:借助操作系统页缓存加速数据读写
  • 高性能序列化(二进制):减少数据传输体积与解析耗时
  • 内存映射:优化文件读写的内存交互,降低系统调用开销
  • 无锁化 offset 管理:避免锁竞争,提升并发场景下的 offset 操作效率
  • Java NIO 模型:基于非阻塞 IO 实现高效网络通信

(二)一致性保障

  • 选举机制:如 Raft 类协议,保障 Leader 节点选举的一致性
  • Follower 数据同步:通过 Follower 拉取 Leader 数据,维持副本间一致性

(三)高可用设计

  • leader 选举:故障时快速重新选主,保障服务连续性
  • replica 副本:多副本冗余存储,容忍节点故障
  • ISR(In-Sync Replica):维护同步副本集合,确保数据可靠性

三、消息系统价值

为什么使用消息系统?

  • 解耦:分离生产端与消费端依赖,降低系统耦合性
  • 冗余:多副本存储实现数据容灾
  • 扩展性:支持灵活扩展生产者、消费者规模
  • 灵活性&峰值处理能力:削峰填谷,应对流量波动
  • 可恢复性:基于持久化存储,故障后数据可恢复
  • 顺序保证:分区内消息有序,满足业务顺序需求
  • 缓冲:暂存消息,平衡生产与消费速率差异
  • 异步通信:非阻塞交互,提升系统整体吞吐量

四、架构与组件

(一)Kafka 架构 - 基本组成

  • Broker:Kafka 服务实例,负责存储、转发消息
  • Topic:消息主题,逻辑上分类管理消息
  • Partition:主题分区,实现消息分片存储与并行处理
  • Offset:消费位移,标记消费者消费进度
  • Replica:副本,保障数据冗余与高可用
  • Message:消息实体,承载业务数据
  • Producer:生产者,负责发送消息到 Kafka
  • Consumer:消费者,订阅并消费 Kafka 消息
  • Consumer Group:消费者组,实现消费负载均衡与故障转移
  • Zookeeper:(旧版依赖)用于元数据管理、选主等协调操作

(二)Broker 核心模块

1. 网络通信层(SocketServer 相关)
  • Acceptor:负责监听并接收客户端连接请求
  • Processor:处理网络 IO 事件,转发请求到 RequestChannel
  • RequestChannel:请求通道,连接网络层与业务处理层
  • KafkaRequestHandlerPool:请求处理线程池,调度 RequestHandler 处理请求
2. 日志存储层(Log 相关)
  • LogManager:日志管理器,负责主题分区日志的创建、删除等生命周期管理
  • TopicAndPartition:主题 - 分区关联,标识具体日志分片
  • LogSegment:日志段,存储一定时间或大小的消息片段
  • Log:日志实例,管理多个 LogSegment,提供读写接口
3. 副本管理(Replica 相关)
  • ReplicaManager:副本管理器,协调副本同步、选主等操作
  • AR(Assigned Replicas):分配的副本集合,含 Leader 和 Follower
  • ISR(In-Sync Replicas):同步副本集合,保障数据一致性
  • Replica:副本实例,存储分区数据副本
  • Partition:分区实例,关联副本与日志
  • ReplicaFetcherThread:副本拉取线程,从 Leader 同步数据
  • becomeLeaderOrFollower:副本角色转换逻辑,处理选主后的角色变更
4. 其他关键模块
  • OffsetManager:位移管理器,记录消费者 Offset 信息
  • KafkaScheduler:定时任务调度器,执行日志清理、副本同步检测等任务
  • KafkaApi:业务 API 层,处理各类客户端请求(生产、消费、元数据查询等)
  • KafkaHealthcheck:健康检查模块,监控 Broker 状态
  • TopicConfigManager:主题配置管理器,维护主题的动态配置
  • KafkaController:控制器(新版核心),负责集群元数据管理、选主、故障转移等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值