带有阿帕奇-卡夫卡-粘合剂的春云流函数模型



这是这个问题的续集。我可以将"普通"Apache Kafka Binder与函数模型一起使用吗?到目前为止,使用基于注释的配置,我将两者混合在一起,spring-cloud-stream-binder-kafka用于简单消费/生产,spring-cloud-stream-binder-kafka-streams用于在一个应用程序中进行高级流处理。

功能模型似乎仅由streams绑定器支持,如果我尝试混合这两种方法 - 基于注释的简单用法和流的功能,流绑定不会注册。

spring.cloud:
stream:
function:
definition: processStream
bindings:
processStream-in-0:
destination:  my-topic
simple-binding-in:
destination: another-topic
public interface SimpleBinding {
String INPUT = "simple-binding-in";
@Input(INPUT)
SubscribableChannel simpleIn();
}
@Component
public class SimpleListener {
@StreamListener(SimpleBinding.INPUT)
public void listen(@Payload SomeDto payload) {
}
}
@Configuration
public class FunctionalStream {
@Bean
public Consumer<KStream<String>> processStream() {
return eventStream -> eventStream.map()
}
}

@EnableBinding(SimpleBinding.class)存在于配置类上。是否首选/支持按所述混合两者,或者我是否应该使用streams-binder即使是简单的消息消费?

对于 Kafka Binder,你可以而且绝对应该使用函数模型,而忘记 StreamListener。这样,它将与您的 KStream 功能模型保持一致。

spring.cloud:
stream:
function:
definition: processStream
bindings:
processStream-in-0:
destination:  my-topic
listen-in-0:
destination: another-topic
@Component
public class SimpleListener {
@Bean
public Consumer<SomeDto> listen() {
return payload -> ...
}
}
@Configuration
public class FunctionalStream {
@Bean
public Consumer<KStream<String>> processStream() {
return eventStream -> eventStream.map()
}
}

最新更新