蛮子哥 蛮子哥
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

蛮子哥

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • ansible系列文章

  • Kubernetes笔记

  • elk

    • elk安装
    • docker-compose安装elk
    • filebeat-log相关配置指南
    • logstash提取日志字段到kibana仪表盘展示
    • 深入理解 ELK 中 Logstash 的底层原理
    • filebeat及logstash配置
    • es索引定期删除脚本
    • logstash线上配置文件
    • elk报错问题总结
    • es备份和还原
    • ES集群与角色规划
    • ES8.8集群与Kibana部署
    • ElasticSearch可视化工具介绍
    • 使用docker构建ElasticSearch集群
    • ES故障排查命令
    • kafka介绍
      • 一、Kafka 核心概念
      • 二、Kafka 常用管理命令
      • 三、Kafka 排障操作手册
        • 1. Broker 问题
        • 2. Topic 和 Partition 问题
        • 3. Consumer 问题
        • 4. 网络和性能问题
        • 5. 常用快速修复
  • jenkins

  • GitLabCI_CD

  • AI编程

  • 提示词

  • 专题
  • elk
蛮子哥
2026-01-29
目录

kafka介绍

# 一、Kafka 核心概念

  1. Broker
    • Kafka 服务的实例,每个 Broker 都可以处理消息的读写请求。
    • Broker 集群中会有一个 Controller Broker 负责管理分区领导者。
  2. Topic
    • 消息分类,类似队列名称。
    • 每个 Topic 可以被分成多个 Partition。
  3. Partition
    • Topic 的子单元。
    • 消息在 Partition 内有序,分布在不同 Broker 上。
    • 每个 Partition 有一个 Leader 和多个 Follower。
    • Leader 处理所有读写,Follower 异步复制。
  4. Producer
    • 消息生产者,将消息发送到 Topic。
    • 可以指定 Partition 或者让 Kafka 根据 key 计算 Partition。
  5. Consumer
    • 消息消费者,从 Topic 拉取消息。
    • Consumer Group:一组消费者共同消费 Topic,Partition 只被组内一个消费者消费。
  6. Offset
    • Partition 中每条消息的唯一编号。
    • Consumer 使用 Offset 来追踪消费进度。
    • 可以手动或自动提交。
  7. Replication
    • Partition 的副本机制。
    • replication.factor 决定副本数量。
    • 保证高可用,如果 Leader 挂掉,Follower 可接管。
  8. ZooKeeper(旧版 Kafka)
    • 用于管理 Broker 集群状态和 Leader 选举。
    • Kafka 2.8+ 开始可使用 KRaft 模式 无需 ZooKeeper。

# 二、Kafka 常用管理命令

假设 Kafka 安装路径为 /opt/kafka,Zookeeper 地址 127.0.0.1:2181

  1. 查看 Topic 列表
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
1
  1. 查看 Topic 详细信息
bin/kafka-topics.sh --describe --topic test-topic --bootstrap-server localhost:9092
1

输出内容包括:

  • Partition 数量
  • Leader
  • ISR(In-Sync Replicas)
  • 副本信息
  1. 创建 Topic
bin/kafka-topics.sh --create --topic test-topic --partitions 3 --replication-factor 2 --bootstrap-server localhost:9092
1
  1. 删除 Topic
bin/kafka-topics.sh --delete --topic test-topic --bootstrap-server localhost:9092
1
  1. 查看 Consumer Group
bin/kafka-consumer-groups.sh --list --bootstrap-server localhost:9092
1
  1. 查看 Consumer Group 消费状态
bin/kafka-consumer-groups.sh --describe --group test-group --bootstrap-server localhost:9092
1

输出内容包括:

  • Partition 对应的消费 Offset
  • Lag(未消费消息数量)

# 三、Kafka 排障操作手册

# 1. Broker 问题

症状

  • Broker 无法启动或频繁重启
  • 集群状态不稳定,Leader 频繁切换

排查步骤

  1. 查看 Broker 日志:
tail -f /opt/kafka/logs/server.log
1
  1. 检查端口:
netstat -tlnp | grep 9092
1
  1. 检查磁盘空间:
df -h
1
  1. 检查 ZooKeeper / KRaft 状态:
bin/zookeeper-shell.sh 127.0.0.1:2181 ls /brokers/ids
1
  1. 如果 Leader 频繁切换,检查 ISR 是否健康:
bin/kafka-topics.sh --describe --topic test-topic --bootstrap-server localhost:9092
1

# 2. Topic 和 Partition 问题

症状

  • 消费滞后(Lag 增大)
  • 生产消息缓慢

排查步骤

  1. 检查 Topic Partition 是否均匀分布:
bin/kafka-topics.sh --describe --topic test-topic --bootstrap-server localhost:9092
1
  1. 检查生产端是否报错:
grep ERROR /opt/kafka/logs/server.log
1
  1. 检查消费者 lag:
bin/kafka-consumer-groups.sh --describe --group test-group --bootstrap-server localhost:9092
1
  1. 检查磁盘 I/O:
iostat -x 1
1
  1. 调整生产端 batch.size 或压缩参数。

# 3. Consumer 问题

症状

  • 消费端无法消费
  • 消费滞后

排查步骤

  1. 检查消费组状态:
bin/kafka-consumer-groups.sh --describe --group test-group --bootstrap-server localhost:9092
1
  1. 检查网络:
ping broker_ip
1
  1. 检查 Offset 提交方式(自动提交可能失败)
  2. 查看消费者日志

# 4. 网络和性能问题

症状

  • 生产或消费延迟高
  • Kafka 集群负载高

排查步骤

  1. 查看 Broker CPU、内存、磁盘 I/O:
top
iostat -x 1
1
2
  1. 检查网络带宽:
ifstat 1
1
  1. 查看 Kafka 内部指标(JMX 或 Prometheus)
  2. 调整配置:
    • num.network.threads
    • num.io.threads
    • socket.receive.buffer.bytes
    • socket.send.buffer.bytes
    • replica.fetch.max.bytes

# 5. 常用快速修复

问题 快速修复措施
Broker 磁盘满 清理旧日志,调整 log.retention.ms
ISR 过少 检查副本是否 offline,重启 Follower
消费延迟 增加消费者实例,检查消费逻辑
消息堆积 检查生产端速率和 Partition 分布
Leader 频繁切换 检查网络、磁盘和配置,确保 ISR 健康

微信 支付宝
上次更新: 2026/04/29, 17:14:21

← ES故障排查命令 jenkins容器安装→

最近更新
01
ES故障排查命令
04-29
02
debian 12安装kubernetes
04-22
03
认知
03-30
更多文章>
Theme by Vdoing | Copyright © 2019-2026 | 点击查看十年之约 | 鄂ICP备2024072800号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式