我想将杰克逊的ObjectMapper注入到Kafka的ConsumerFactory的JsonDeserializer中。我已经完成了这篇文章中提到的内容:
Inject ObjectMapper into Spring Kafka serialiser/deserialiser
但是,当我在不同主题上有多个@KafkaListener
时,ConcurrentKafkaListenerContainerFactory
使用属性映射构造ConcurrentMessageListenerContainer
的多个实例来初始化ConsumerFactory
,而不是传递给ConcurrentKafkaListenerContainerFactory.setConsumerFactory()
的实例。只有第一个ConcurrentMessageListenerContainer
使用正确的ConsumerFactory
。
如何解决此问题并正确配置Kafka?
最佳答案
每个侦听器都需要一个不同的使用者/容器工厂。然后使用@KafkaListener上的containerFactory属性指定要使用的工厂。