java - Spring Boot Kafka 批量转发

标签 java apache-kafka spring-kafka

我已将消费者配置为批量接受来自某个主题的消息。如何将其转发到新主题?

我希望每个使用的消息都作为它自己的消息进行转发。因此,消耗 X 数量的消息将产生 X 数量的消息。

这是我当前的设置:

@KafkaListener(topics = "input")
@SendTo("output")
public ConsumerRecords consume(ConsumerRecords records) {
  // Do things
  return records;
}

这是抛出的异常:

org.springframework.kafka.KafkaException: No method found for class java.util.ArrayList

最佳答案

不支持该功能。无论如何,您都无法将 ConsumerRecord 发送到 Producer

不过这可行

@KafkaListener(id = "foo", topics = "input")
@SendTo("output")
public List<String> consume(List<String> data) {
    return data;
}

(其中 String 是反序列化器创建的类型)。

关于java - Spring Boot Kafka 批量转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55580534/

相关文章:

java - KafkaConsumer.close() 为什么?

java - Spring Kafka-用Producer Listener配置KafkaTemplate和用Listenable Future注册回调的区别

java - 在另一个类(class)开始另一项 Activity

java - 使用 JavaFX 制作正方形被子

kotlin - Kotlin应用程序配置avro的kafka使用者和produser失败

spring-boot - kafka什么时候会重试处理尚未确认的消息?

java - Kafka Listener方法发生异常时不提交offset

spring-kafka - 重新排队kafka主题中的失败记录

java - Solr复制字段复制到另一个字段

java - 如何使用 @JsonAlias 注释将嵌套值映射到属性?