Как я могу узнать, что тема кафки заполнена? - PullRequest
0 голосов
/ 12 декабря 2018

Допустим, у меня есть один брокер kafka, настроенный с одним разделом

log.retention.bytes=80000 
log.retention.hours=6

Что произойдет, если я попытаюсь отправить запись с API-интерфейсом производителя брокеру и журнал темы заполнится до того, каксрок хранения?

Будет ли мое сообщение удалено?Или kafka освободит место из старых сообщений и добавит мое?

Как узнать, заполнена ли тема и удаляются ли журналы перед использованием?
Есть ли способ отслеживать или отображать метрику при заполнении темы?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Это не совсем так, тема никогда не бывает полной, по крайней мере, по умолчанию.

Я сказал по умолчанию, потому что, как @Mukesh сказал, cleanup.policy будет отбрасывать старые сегменты, когда их время хранения или ограничение размера составляютдостигнут, но по умолчанию нет ограничения по размеру, только ограничение по времени и свойство, которое обрабатывает retention.bytes (по умолчанию установлено -1).

Это разрешит только ограничение по времени для сообщения,обратите внимание, что значение retention.bytes устанавливается по разделам, поэтому, чтобы указать ограничение для темы, необходимо умножить ее на количество разделов в этой теме.

РЕДАКТИРОВАТЬ: существует множество метрикчто экспорт кафки (в JMX) и в этих вы можете найти глобальные метрики о сегментах (общее количество, по номерам темы, размер, скорость прокатки сегментов и т. д.).

0 голосов
/ 12 декабря 2018

Что произойдет, если я попытаюсь отправить запись с API-интерфейсом производителя брокеру и журнал темы заполнится до истечения срока хранения?Будет ли мое сообщение удалено?Или kafka освободит место из старых сообщений и добавит мое? Свойство

cleanup.policy из конфигурации раздела, которое по умолчанию равно delete, говорит, что «Политика удаления отбрасывает старые сегменты, когда ихсрок хранения или ограничение по размеру были достигнуты. "

Итак, если вы отправите запись с производителем api и тема заполнена, она отбросит старые сегменты.

Как узнать, чтотема наполняется и журналы удаляются перед использованием?Есть ли способ отслеживать или показывать метрику, когда тема заполняется?

Размер раздела можно получить с помощью приведенного ниже сценария:

/bin/kafka-log-dirs.sh --describe --bootstrap-server : --topic-list

Вам потребуется разработатьскрипт, который будет запускаться выше скрипта для получения текущего размера темы и периодической отправки его в Datadog.В Datadog вы можете создать виджет, который будет запускать соответствующие действия (например, отправлять оповещения по электронной почте), как только размер достигнет определенного порога.

...