Есть ли способ предоставить конфигурацию KafkaListener / topi c -specifi c через application.properties? - PullRequest
0 голосов
/ 29 марта 2020

При использовании Spring для Apache Kafka в проекте Spring Boot, есть ли способ настроить разных слушателей с помощью записей в application.properties?

Например, если у меня есть отдельные слушатели по темам foo и bar, могу ли я иметь такие записи, как:

spring.kafka.producer.foo.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer
spring.kafka.producer.bar.value-serializer=some.other.Serializer

Я думал, что где-то видел пример этого, но, похоже, больше его не могу найти.

1 Ответ

0 голосов
/ 29 марта 2020

К сожалению, нет поддержки со стороны производителя, но вы можете сделать это со стороны потребителя (начиная с 2.2.4). Пожалуйста, откройте новую проблему GitHub, и мы можем взглянуть на нее.

Со стороны потребителя см. Атрибут properties в аннотации

@KafkaListener( ... properties={ "value.deserializer:${a.deserializer}", ... }, ...)

@KafkaListener( ... properties={ "value.deserializer:${b.deserializer}", ... }, ...)

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

...