Чашечка Java
8.3K subscribers
3.97K photos
13 videos
56 files
6.45K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Micrometer: каждый новый 404 может раздувать метрику

Если в собственной инструментализации записывать сырой URI в тег метрики, запросы к /missing/a, /missing/b и тысячам других несуществующих путей дадут тысячи разных значений тега.

Micrometer разбирает именно такой пример: если не ограничивать значения URI для 404, кардинальность метрики растёт с каждым новым отсутствующим ресурсом. Вместо произвольного пути можно использовать ограниченное значение вроде NOT_FOUND.

Это задача проектирования собственных тегов. Из примера не следует, что все интеграции Spring Boot по умолчанию записывают сырые 404-пути.

На схеме меняется только тег URI. Значения условные, измерений памяти здесь нет.

Micrometer: Tag Values
Kafka: heartbeat не заменяет вызовы poll

Consumer может отправлять heartbeat и при этом слишком долго обрабатывать пачку. В Java-клиенте Kafka 4.0 прогресс проверяется отдельно: интервал между вызовами poll ограничивает max.poll.interval.ms.

Если интервал превышен, consumer рискует потерять партиции, а коммит может завершиться CommitFailedException. Размер пачки ограничивает max.poll.records. Увеличение интервала даёт больше времени на обработку, но может замедлить rebalance.

Если обработку вынести в worker, consumer должен продолжать вызывать poll. Auto commit отключают, партиции приостанавливают до конца обработки, а offsets коммитят вручную только после обработки. Сам KafkaConsumer не thread-safe: worker-потоки не должны произвольно вызывать его методы.

KafkaConsumer 4.0: Detecting Consumer Failures