Consumer lag = (Log End Offset của partition) - (Current Offset của consumer group) = số message consumer chưa xử lý.
- Lag cao đồng nghĩa consumer đang xử lý chậm hơn producer ghi vào, có thể dẫn đến message bị expire (nếu
log.retention.hoursngắn) hoặc data trễ quá mức chấp nhận. - Monitor lag:
bash
# Kafka CLI
kafka-consumer-groups.sh --bootstrap-server localhost:9092 \
--describe --group my-group
# Kết quả: TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG- Prometheus stack: Kafka Exporter (
kafka_consumergroup_lag) + Grafana dashboard. - Alert khi: lag vượt threshold (ví dụ > 10,000 records), lag tăng liên tục qua nhiều scrape interval.
- Nguyên nhân lag cao: consumer xử lý chậm (heavy business logic, DB call), GC pause, rebalancing, downstream bottleneck.
- Giải pháp: tăng số consumer (nếu còn partition chưa được assign), optimize processing logic, tăng
max.poll.records, cân nhắc async processing.