Spring Kafka - Как настроить один ListenerContainerFactory с несколькими слушателями, имеющими разные конфигурации - PullRequest
0 голосов
/ 17 июня 2020

При использовании KafkaListenerContainerFactory по умолчанию, автоматически настроенного при загрузке Spring, возможно ли иметь несколько @KafkaListeners, которые используют разные десериализаторы и конвертеры сообщений? Например, один слушатель использует JsonDeserializer, а другой - BytesDeserializer и BytesJsonMessageConverter. Какой будет конфигурация для этого. Возможно ли это путем определения настраиваемого KafkaListenerContainerFactory? Также я прав, думая, что в приложении должен быть только один KafkaListenerContainerFactory, поскольку это фабрика.

1 Ответ

0 голосов
/ 17 июня 2020

Вы можете использовать разные фабрики для каждой (и указать, какую из них использовать на @KafkaListener), или переопределить отдельные свойства на @KafkaListener.

См. документацию .

@KafkaListener(id = "one", topics = "one")
public void listen1(String in) {
    System.out.println("1: " + in);
}

@KafkaListener(id = "two", topics = "two",
        properties = "value.deserializer:org.apache.kafka.common.serialization.ByteArrayDeserializer")
public void listen2(byte[] in) {
    System.out.println("2: " + new String(in));
}
...