这个版本仍在开发中,尚未达到稳定状态。要使用最新稳定版,请使用 spring-cloud-stream 5.0.1 spring-doc.cadn.net.cn

手动启动Kafka Streams处理器

Spring Cloud Stream Kafka Streams binder为Spring for Apache Kafka中的StreamsBuilderFactoryManager提供了一个抽象层,该层又建立在StreamsBuilderFactoryBean之上。此管理器API用于在基于绑定器的应用程序中控制每个处理器的多个StreamsBuilderFactoryBean。因此,如果使用绑定器,并且想手动控制应用程序中各种StreamsBuilderFactoryBean对象的自动启动,则需要使用4。可以将属性spring.kafka.streams.auto-startup设置为false,以关闭处理器的自动启动。然后,在应用程序中,可以使用下面的示例来使用StreamsBuilderFactoryManager启动处理器。spring-doc.cadn.net.cn

@Bean
public ApplicationRunner runner(StreamsBuilderFactoryManager sbfm) {
    return args -> {
        sbfm.start();
    };
}

此功能非常方便,当您希望应用程序在主线程中启动,而让Kafka Streams处理器单独启动时使用。例如,如果您有一个需要恢复的大状态存储,在默认情况下处理器被启动的情况下,这可能会阻止您的应用程序启动。如果您使用某种活动性探测机制(例如在Kubernetes上),它可能会认为应用程序已关闭并尝试重新启动。要纠正这一点,可以将spring.kafka.streams.auto-startup设置为false,然后遵循上面介绍的方法。spring-doc.cadn.net.cn

请记住,当使用Spring Cloud Stream绑定器时,你不是直接处理Spring for Apache Kafka的StreamsBuilderFactoryBean,而是StreamsBuilderFactoryManager,因为StreamsBuilderFactoryBean对象由绑定器内部管理。spring-doc.cadn.net.cn