基于APACHE-KAFKA-BINDER的春云流功能模型 [英] Spring-cloud-stream functional model with apache-kafka-binder

查看:0
本文介绍了基于APACHE-KAFKA-BINDER的春云流功能模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是question的续集。我可以把"普通"的阿帕奇卡夫卡活页夹和功能模型一起使用吗?到目前为止,使用基于注释的配置,我在一个应用程序中混合了spring-cloud-stream-binder-kafkaspring-cloud-stream-binder-kafka-streams两者,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绑定器,您可以也绝对应该使用功能模型,而完全忘记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()
    }
}

这篇关于基于APACHE-KAFKA-BINDER的春云流功能模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆