【问题标题】:Spring Boot Kafka @SendTo can't read kafka_replyTopic headerSpring Boot Kafka @SendTo 无法读取 kafka_replyTopic 标头
【发布时间】:2020-09-02 09:23:49
【问题描述】:
我在 Spring Boot 应用程序的消费者接收器上使用了没有参数的 @SendTo 注释。收到的消息包含标头“Kafka_replyTopic”,但@SendTo 无法读取它并且kafka 在发送回复时抛出异常:
Listener failed; nested exception is java.lang.IllegalStateException: With no topic header, a defaultTopic is required
【问题讨论】:
标签:
java
spring-boot
kafka-consumer-api
spring-kafka
【解决方案1】:
我通过将消费者应用程序中的 spring-boot-starter-parent 版本设置为与生产者应用程序中的相同(v. 2.3.2.RELEASE)解决了这个问题
我不知道问题是消费者应用程序中的旧版本本身(v. 2.2.6.RELEASE)还是它的版本与生产者应用程序的版本不同。
【讨论】:
-
我假设您返回的是 Message<?> - 这是 spring-kafka 2.5 中的 indeed a change(由引导 2.3 引入)。通常最好在提出此类问题时显示侦听器方法签名。
-