首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集成弹簧启动和反应堆-卡夫卡的KafkaReceiver

集成弹簧启动和反应堆-卡夫卡的KafkaReceiver
EN

Stack Overflow用户
提问于 2019-03-19 13:48:00
回答 1查看 2.3K关注 0票数 8

我正在尝试开发一个Spring应用程序,使用库reactor-kafka对从Kafka主题读取的一些消息做出反应。

我有一个构建KafkaReceiver的配置类。

代码语言:javascript
复制
@Configuration
public class MyConfiguration {

    @Bean
    public KafkaReceiver<String, String> kafkaReceiver() {
        Map<String, Object> props = new HashMap<>();
        // Options initialisation...
        final ReceiverOptions<String, String> receiverOptions =
                ReceiverOptions.<String, string>create(props)
                               .subscription(Collections.singleton(consumer.getTopic()));
        return KafkaReceiver.create(receiverOptions);
    } 
}

Well...and现在?使用不那么被动的spring-kafka库,我可以用@KafkaListener注释一个方法,Spring将为我创建一个听卡夫卡主题的线程。

我应该把KafkaReceiver放在哪里呢?在所有示例中,我发现直接使用了main方法,但这不是引导方式。

我使用Spring 2.1.3和反应堆-Kafka 1.1.0

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-19 15:06:28

既然有了KafkaReceiver bean,现在就可以这样做了:

代码语言:javascript
复制
@Bean
public ApplicationRunner runner(KafkaReceiver<String, String> kafkaReceiver) {
        return args -> {
                kafkaReceiver.receive()
                          ...
                          .sunbscribe();
        };
}

这个ApplicationRunner bean将在ApplicationContext准备就绪时被踢掉。有关更多信息,请参见其JavaDocs。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55242567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档