如何将主题动态传递给 kafka 侦听器?

Vis*_*uli 4 java apache-kafka kafka-consumer-api

从几天开始,我正在尝试将主题动态传递给 Kafka 侦听器的方法,而不是通过来自 Java DSL 的键使用它们。周围的任何人以前都这样做过,或者可以说明实现这一目标的最佳方法是什么?

Gun*_*ger 10

我找到的最简单的解决方案是使用 SpEL:

@Autowired
private SomeBean kafkaTopicNameProvider;

@KafkaListener(topics = "#{kafkaTopicNameProvider.provideName()}")
public void listener() { ... }
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。或者,主题可以通过 application.yml prop 来:`@KafkaListener(topics = {"${someprop}"})` (3认同)

Gar*_*ell 3

你不能“动态地将主题传递给Kafka监听器”;您必须以编程方式创建一个侦听器容器。