#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
в свое приложение, чтобы само приложение создало тему с ожидаемыми настройками