Ответ
Consumer lag — это разница между последним сообщением, записанным в партицию Kafka, и последним сообщением, обработанным consumer'ом. Чем больше lag, тем сильнее consumer отстает от producer'а.
Пример:
lag := partitionHighWatermark - consumerOffset
Причины lag:
- Медленная обработка сообщений (bottleneck в consumer'е).
- Недостаточно consumer'ов в группе (partition > consumers).
- Сетевые задержки или проблемы с брокером.
Как мониторить:
- Метрики Kafka (e.g.,
kafka_consumer_lagв Prometheus). - CLI:
kafka-consumer-groups --describe.
Решение:
- Увеличить количество consumer'ов.
- Оптимизировать обработку (batch'и, async).
- Настроить
fetch.min.bytesиfetch.max.wait.msдля баланса latency/throughput.