跳到主要内容

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 其他新特性​