跳到主要内容

Kafka

一、Kafka 简介

1.1 什么是 Kafka

1.2 Kafka 的历史

1.3 Kafka 的特点

  • 高吞吐量
  • 低延迟
  • 高可用性
  • 可扩展性
  • 持久化
  • 分布式

1.4 Kafka vs 传统消息队列

1.5 Kafka 应用场景

二、Kafka 核心概念

2.1 Producer(生产者)

2.2 Consumer(消费者)

2.3 Broker(代理)

2.4 Topic(主题)

2.5 Partition(分区)

  • 分区作用
  • 分区策略
  • 分区数量

2.6 Offset(偏移量)

  • Offset 概念
  • Offset 管理
  • Offset 提交

2.7 Consumer Group(消费者组)

  • 消费者组概念
  • 组协调器
  • 再平衡

2.8 Replication(复制)

  • 副本概念
  • Leader 副本
  • Follower 副本
  • ISR(In-Sync Replicas)

2.9 Zookeeper

  • Zookeeper 作用
  • 元数据存储
  • 协调服务

三、Kafka 架构

3.1 整体架构

3.2 存储架构

  • 日志存储
  • 日志段
  • 索引文件

3.3 网络架构

3.4 高可用架构

四、Kafka 安装部署

4.1 环境准备

  • JDK 安装
  • Zookeeper 安装

4.2 Kafka 单机部署

4.3 Kafka 集群部署

4.4 Docker 部署

4.5 Kubernetes 部署

4.6 配置文件详解

4.7 启动和停止

五、Kafka 命令行工具

5.1 Topic 管理

  • 创建 Topic
  • 删除 Topic
  • 查看 Topic
  • 修改 Topic

5.2 生产者和消费者

  • 控制台生产者
  • 控制台消费者
  • 消费者组管理

5.3 偏移量管理

5.4 其他工具命令

六、Kafka 生产者

6.1 生产者工作原理

6.2 消息发送方式

  • 发送并忘记
  • 同步发送
  • 异步发送

6.3 序列化器

6.4 分区器

  • 默认分区器
  • 自定义分区器

6.5 可靠性保证

  • acks 配置
  • 重试机制
  • 幂等性
  • 事务

6.6 缓冲区管理

6.7 批量发送

6.8 压缩

七、Kafka 消费者

7.1 消费者工作原理

7.2 消费者组

  • 组内消费
  • 组间消费

7.3 订阅 Topic

  • 订阅多个 Topic
  • 正则订阅
  • 指定分区订阅

7.4 消息消费

  • 拉取模式
  • 推送模式

7.5 Offset 管理

  • 自动提交
  • 手动提交
  • 同步提交
  • 异步提交

7.6 反序列化器

7.7 消费者配置

7.8 再平衡监听器

八、Kafka 高级特性

8.1 消息压缩

  • 压缩算法
  • 压缩配置

8.2 消息批量处理

8.3 消息幂等性

8.4 事务消息

8.5 延迟消息

8.6 消息 ttl

九、Kafka 性能优化

9.1 Producer 优化

9.2 Consumer 优化

9.3 Broker 优化

9.4 网络优化

9.5 磁盘优化

9.6 JVM 优化

十、Kafka 监控

10.1 Kafka 自带指标

10.2 JMX 监控

10.3 常用监控工具

  • Kafka Manager
  • Burrow
  • Prometheus + Grafana
  • Kafka Exporter

10.4 关键监控指标

10.5 告警配置

十一、Kafka 安全

11.1 SASL 认证

11.2 ACL 权限控制

11.3 SSL/TLS 加密

11.4 网络安全

十二、Kafka 运维

12.1 日常维护

12.2 数据迁移

12.3 集群扩容

12.4 集群缩容

12.5 版本升级

12.6 备份恢复

12.7 故障排查

十三、Kafka 客户端开发

13.1 Java 客户端

  • Producer API
  • Consumer API
  • Admin API
  • Streams API

13.2 Spring Boot 集成

  • 依赖配置
  • 配置类
  • 生产者模板
  • 消费者监听器

13.3 Go 客户端

13.4 Python 客户端

十四、Kafka Streams

14.1 Streams 简介

14.2 核心概念

  • KStream
  • KTable
  • GlobalKTable

14.3 流处理 API

14.4 转换操作

14.5 状态存储

14.6 窗口操作

十五、Kafka Connect

15.1 Connect 简介

15.2 Connect 架构

15.3 Source Connector

15.4 Sink Connector

15.5 常用 Connector

15.6 自定义 Connector

十六、Kafka 实战案例

16.1 日志收集系统

16.2 实时数据处理

16.3 事件驱动架构

16.4 微服务通信

16.5 用户行为分析

十七、Kafka 最佳实践

17.1 Topic 设计

17.2 分区设计

17.3 消费设计

17.4 生产环境配置

17.5 监控告警

十八、Kafka 常见问题

18.1 消息丢失

18.2 消息重复

18.3 消息顺序

18.4 消息积压

18.5 Rebalance 问题

18.6 Zookeeper 问题

十九、Kafka 新特性

19.1 Kraft 模式(去 Zookeeper)

19.2 Tiered Storage

19.3 其他新特性