我正在尝试使用单个绑定来消费来自多个主题的消息,并且只是简单地打印。但由于某些原因,我只能从第一个主题中获得消息。我是否必须以不同的方式指定属性。我在这个博客https://spring.io/blog/2019/12/03/stream-processing-with-spring-cloud-stream-and-apache-kafka-streams-part-2-programming-model-continued上关注了多路话题的讨论。
// My properties
spring.cloud.stream.bindings.routeRequests-in-0.destination=kafk.pds.orch.be-uda.complete,kafk.pds.orch.prov-uda.complete,kafk.pds.orch.location-uda.complete
spring.cloud.stream.bindings.routeRequests-in-0.consumer.use-native-decoding=false
spring.cloud.stream.kafka.streams.binder.functions.routeRequests.applicationId=kafk.pds.orch.stream.routeRequests
// My code
@Bean
public Consumer<KStream<String, String>> routeRequests() {
return uda -> uda.foreach((s, request) -> {
System.out.println("Hello:" + s);
});
发布于 2021-09-10 14:30:08
我没看到你的代码有任何问题。我刚刚通过一个示例应用程序验证了此功能是否有效。参见here。
将此示例应用程序与您的应用程序进行比较。如果事情仍然不起作用,请随意分享一个可重复的样本,以便我们可以进一步分类。
顺便说一句,你不需要将use-native-decoding
设置为false
,除非你有特殊的原因。默认值是true
(这意味着我们依赖于Kafka Streams的Serde
机制)。然而,这不是你的问题。我能够使用这两种设置运行示例应用程序。
https://stackoverflow.com/questions/69133018
复制相似问题