使用带有 KafkaListener 注释的多个主题名称

Using multiple topic names with KafkaListener annotation

下面有一个类似的问题:


所以我现在明白我可以为 KafkaListener 注释的主题参数提供一个字符串数组,但是我想知道以下内容:

  1. 如何从属性文件中获取主题名称作为字符串数组?
  2. 从多个主题中读取的内容如何影响偏移量?客户端 (spring kafka) 会维护每个主题的偏移量吗?

如果您的 属性 是 my.topics(逗号分隔)...

@KafkaListener(id = "foo", topics = "#{'${my.topics}'.split(',')}")

是的,管理所有订阅的偏移量 topics/partitions。

属性文件中的主题名称

@KafkaListener(topics = { "${spring.kafka.topic1}", "${spring.kafka.topic2}" })