Skip to content

集群运维与调优

Partition 规划

Partition 数决定最大消费并行度、Leader/Replica 数量和元数据规模。规划时综合考虑目标吞吐、Consumer 并发、单 Partition 顺序、Broker 数、故障恢复和未来扩展。

Partition 可以增加但不能原地减少。增加后默认 Key 分区映射可能变化,也不会自动重分布已有数据。

副本与扩容

增加 Broker 后,既有 Partition 不会自动均匀迁移。需要生成并执行 Replica Reassignment,并控制迁移流量。迁移期间应监控 ISR、网络、磁盘和请求延迟。

Preferred Leader Election 用于恢复首选 Leader 分布;它不搬迁日志副本。分区副本分配与 Leader 均衡是两个不同问题。

Consumer Lag

Lag 是 Log End Offset 与 Group 已提交 Offset 的差值。它表示消息数量差,不直接等于时间延迟;不同消息大小和处理成本下,同样 Lag 的恢复时间不同。

bash
bin/kafka-consumer-groups.sh --bootstrap-server node1:9092 \
  --describe --group analytics

积压排查顺序:输入速率、Consumer 是否存活、分区倾斜、处理耗时、下游依赖、Rebalance、GC 和网络。增加 Consumer 不能突破 Partition 数限制。

关键指标

类别指标方向
副本UnderReplicatedPartitions、UnderMinIsr、OfflinePartitions
请求Produce/Fetch 延迟、Request Queue、Network/IO Idle
存储Log Size、磁盘利用率、Flush、坏盘目录
ControllerActive Controller、Metadata Error、选举与 Broker 心跳
ConsumerLag、Rebalance、Poll 间隔、Commit 失败
ProducerError、Retry、Record Queue、Batch、Throttle

常见故障

现象优先检查
NOT_ENOUGH_REPLICASISR 数、min.insync.replicas、Follower 滞后
Produce 延迟升高Broker I/O、请求队列、批量、压缩和配额
Consumer 频繁 RebalancePoll 超时、Session、成员 churn、处理线程阻塞
单 Broker 磁盘增长快Leader/Replica 分布、热点 Topic、保留策略
KRaft 元数据异常Controller Quorum、多数派、网络和磁盘

安全

生产集群通常使用 TLS、SASL 和 ACL。认证解决身份,ACL 控制 Topic、Group、Cluster、Transactional ID 等资源操作。还应限制管理接口、保护凭据,并审计超级用户权限。

参考资料