Kafka问题排查笔记
首先,进入Kafka脚本目录:比如:/opt/kafka_2.13-2.7.1/bin/
列出消费者组
[root@kafka-0 bin]# kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list plat-core-100.104.41.11 nm-core-100.104.41.15 plat-core nm-core plat-license |
描述该消费者组的详细信息
- 可以看到该消费者组监听的所有的消息主题
- 可以通过LAG消费滞后列可以说明是否消息积压或者消费速度过慢
kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group nm-core |
结果解释:
列名 | 说明 |
GROUP | 消费者组名称 |
TOPIC | 订阅的topic名称 |
PARTITION | Topic的分区号 |
CURRENT-OFFSET | 当前消费到的偏移量(最新的消费位置) |
LOG-END-OFFSET | Topic消息的最新消息偏移量(总消息量) |
LAG | 未消费的消息数量(LOG-END-OFFSET – CURRENT-OFFSET) 全称:Log (End Offset) Ahead of Group (Offset) 更常见的名称解释:Consumer Lag,消费者消息积压量 |
COMSUMER-ID | 消费者客户端id |
HOST | 消费者所在机器的ip,这里即是pod的ip |
CLIENT-ID | 消费者客户端标识 |
以上命令中的127.0.0.1可以是任意一个可用的kafka broker的ip地址。
查看消费者组的状态
[root@kafka-0 bin]# kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --group nm-core --describe --state GROUP COORDINATOR (ID) ASSIGNMENT-STRATEGY STATE #MEMBERS nm-core kafka-0.kafka-svc.maipu-matrix-center.svc.cluster.local:9092 (0) range Stable 2 |
Kafka和rocketMQ中的broker的概念对比
维度 | Kafka | RocketMQ |
Broker 本质 | 物理节点,运行分区副本 | 逻辑组(Master + Slave) |
副本角色 | 动态(Leader/Follower 按分区划分) | 固定(Master/Slave 按 Broker 组划分) |
数据同步 | ISR 机制(异步拉取) | 主从复制(同步/异步) |
扩展性 | 分区副本可跨 Broker 自由分配 | Slave 数量受限于 Master 组 |
高可用设计 | 依赖 ISR 和 Controller 选举 | 依赖 Master-Slave 切换 |
- Kafka 的 Broker 是物理节点,副本是分区的冗余,角色动态变化。
- RocketMQ 的 Broker 是逻辑组(Master+Slave),副本是主从绑定,角色固定。
- Kafka 更灵活(副本跨节点分布),RocketMQ 更简单(主从强一致性优先)