【发布时间】:2020-12-14 09:51:28
【问题描述】:
我正在开发一个 Spring Boot kafka 消费者应用程序。它将有不同的消费者处理不同的主题。消费者的所有信息都来自 application.yml 文件。
application:
kafka:
consumer-config:
- name: consumer-a
topics: topic1,topic2
......
- name: consumer-b
topics: topic3,topic4
.....
我无法将主题列表从应用程序属性设置到 KafkaListener。
我尝试了以下方法:
@KafkaListener(topics = "#{'${application.kafka.consumer-config[0].topics}'.split(',')}",containerFactory = "kafkaListenerContainerFactory")
@KafkaListener(topics = "#{'${application.kafka.consumer-config.?[name == 'consumer-a'].topics}'.split(',')}", containerFactory = "kafkaListenerContainerFactory")
在这两种情况下,我都会收到以下错误:
java.lang.IllegalArgumentException: 无法解析占位符
从应用程序属性中获取主题并将其设置在 KafkaListener 主题上的最佳方式是什么?
【问题讨论】:
标签: java spring-boot apache-kafka spring-kafka