Необходима миграция Кафки / обработка «UNKNOWN_TOPIC_OR_PARTITION»?

#kotlin #apache-kafka #spring-kafka

Вопрос:

Мы используем spring KafkaListener для прослушивания тем. Все работает нормально.

Теперь нам нужно перейти к другому брокеру Kafka, который на момент развертывания нашего приложения не обслуживает никаких тем.

Я смоделировал это локально, и наш слушатель получает бесконечные предупреждения UNKNOWN_TOPIC_OR_PARTITION. Какое-то ожидаемое поведение.

Ошибка при извлечении метаданных с идентификатором корреляции 146 : {x-события-live=НЕИЗВЕСТНЫЕ_TOPIC_OR_PARTITION}

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

 @KafkaListener(
        id = "id",
        topics = ["topic"],
        groupId = "group",
        containerFactory = "myContainer",
        autoStartup = "false"
)
fun thingChnanged(@Payload thing: Thing,
                            record: ConsumerRecord<String, String>,
                            @Headers headers: MessageHeaders) {
    doSomething(thing)
}
 

Ответ №1:

Утечка памяти происходит не чаще, чем при обычном TCP-соединении с потребителем.

Да, вы можете подождать или добавить @Bean NewTopic в свое приложение, чтобы само приложение создало тему с ожидаемыми настройками