может ли распределенный рабочий kafka-connect работать с разделом ‘connect-offset’ с конфигурацией ‘cleanup.policy = compact, delete’

#apache-kafka #apache-kafka-connect #ibm-eventstreams

#апачи-кафка #apache-kafka-подключение #ibm-потоки событий

Вопрос:

Я запустил распределенный рабочий кластер kafka-connect, который использует тему connect-offset для смещенного хранилища:

 offset.storage.topic=connect-offset
 

Поскольку брокеру предоставляется политика по умолчанию ‘cleanup.policy= delete’, при создании темы с помощью ‘cleanup.policy =compact’ я в конечном итоге получу ‘cleanup.policy =compact, delete’ для этой темы. Которые приводят к тому, что рабочий процесс kafka-connect выдает исключение:

org.apache.кафка.общий.конфиг.ConfigException: Раздел ‘slpe-connect-offset’, предоставляемый через свойство ‘offset.storage.topic’, должен иметь ‘cleanup.policy = compact’, чтобы гарантировать согласованность и долговечность смещений исходного соединителя, но обнаружил, что в настоящее время в разделе есть ‘cleanup.policy =compact, delete’. Продолжение, вероятно, приведет к потере смещений исходного соединителя и проблемам с перезапуском этого кластера подключения в будущем. Измените свойство ‘offset.storage.topic’ в конфигурациях Connect worker, чтобы использовать раздел с ‘cleanup.policy = compact’.

Вопрос: существует ли какая-либо рабочая конфигурация kafka-connect, позволяющая использовать это исключение для сохранения рабочего процесса? хотя это рискованно, но delete этого не произойдет, пока не будет достигнут предел удержания или размера.

Ответ №1:

Эта проверка была введена в KAFKA-9216 (PR) и влияет на версии 2.3.2, 2.6.0, 2.4.2, 2.5.1:

Текущее изменение помогает защитить пользователей, запускающих Connect с темами, для которых включена политика очистки удаления, что приведет к удалению всех конфигураций соединителей, смещений источников и статусов соединителей и задач, которые старше времени хранения. Это означает, что, например, конфигурация для долго работающего соединителя может быть удалена брокером, и это вызовет проблемы с перезапуском при последующей перебалансировке или перезапуске рабочих (ов) Connect. Поведение подключения требует, чтобы его внутренние разделы были сжаты и не удалялись после некоторого времени хранения

Поэтому крайне не рекомендуется использовать политику очистки удаления для тем Kafka Connect interanl: просто воссоздайте эти темы.

Нет никакого свойства конфигурации, чтобы игнорировать эту проверку, но если вы хотите, вы можете понизить Kafka Connect до версии без нее.

Комментарии:

1. Спасибо за подробности и указатель!