Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 一旦使用SpringCloudStream的SpringBoot应用程序停止生产,Kafka Avro主题上的数据就会丢失_Spring Boot_Apache Kafka_Spring Cloud Stream_Confluent Platform_Spring Cloud Stream Binder Kafka - Fatal编程技术网

Spring boot 一旦使用SpringCloudStream的SpringBoot应用程序停止生产,Kafka Avro主题上的数据就会丢失

Spring boot 一旦使用SpringCloudStream的SpringBoot应用程序停止生产,Kafka Avro主题上的数据就会丢失,spring-boot,apache-kafka,spring-cloud-stream,confluent-platform,spring-cloud-stream-binder-kafka,Spring Boot,Apache Kafka,Spring Cloud Stream,Confluent Platform,Spring Cloud Stream Binder Kafka,用例是读取2个输入Avro主题,然后生成1个输出Avro主题。该主题有3个分区,复制因子为1,保留期为7天。这些主题都在融合的卡夫卡平台上。生成应用程序是一个Spring引导应用程序(在Java1.8上运行),它使用Spring云流Kafka流与合流Kafka进行交互 问题-每当生产应用程序停止时,所有数据都会丢失。开始偏移量变为结束偏移量,每个分区的数据大小变为0B。 我的application.yml文件如下所示- spring.cloud.stream: function:

用例是读取2个输入Avro主题,然后生成1个输出Avro主题。该主题有3个分区,复制因子为1,保留期为7天。这些主题都在融合的卡夫卡平台上。生成应用程序是一个Spring引导应用程序(在Java1.8上运行),它使用Spring云流Kafka流与合流Kafka进行交互

问题-每当生产应用程序停止时,所有数据都会丢失。开始偏移量变为结束偏移量,每个分区的数据大小变为0B。

我的application.yml文件如下所示-

spring.cloud.stream:
    function:
        definition: f1;f2
    bindings:
        f1-in-0:
            destination: inputTopic1
        f2-in-0:
            destination: inputTopic2
        f1-out-0:
            destination: outputTopic1
        f2-out-0:
            destination: outputTopic2

spring.cloud.stream.kafka.streams:
    binder:
        brokers: broker
        configuration:
            schema.registry.url: schemaRegUrl
            consumer.interceptor.classes: io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
            producer.interceptor.classes: io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor
            default:
                key.serde: org.apache.kafka.common.serialization.Serdes$SringSerde
                value.serde: io.confluent.kafka.streams.serdes.avro.SpecificAvroSerde
    bindings:
        f1-in-0:
            consumer:
                applicationId: f1-id
        f2-in-0:
            consumer:
                applicationId: f2-id
我的pom.xml看起来像-


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-stream-binder-kafka-streams</artifactId>
    <version>Hoxton.SR5</version>
</dependency>

<dependency>
    <groupId>org.apache.avro</groupId>
    <artifactId>avro</artifactId>
    <version>1.9.1</version>
</dependency>

<dependency>
    <groupId>io.confluent</groupId>
    <artifactId>kafka-streams-avro-serde</artifactId>
    <version>5.3.0</version>
</dependency>

<dependency>
    <groupId>io.confluent</groupId>
    <artifactId>kafka-avro-serializer</artifactId>
    <version>5.3.0</version>
</dependency>

<dependency>
    <groupId>org.modelmapper</groupId>
    <artifactId>modelmapper</artifactId>
    <version>2.3.8</version>
</dependency>

<dependency>
    <groupId>io.confluent</groupId>
    <artifactId>monitoring-interceptors</artifactId>
    <version>5.3.1</version>
</dependency>


org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧靴起动器执行器
org.springframework.cloud
春天的云溪,卡夫卡溪
Hoxton.SR5
org.apache.avro
阿夫罗
1.9.1
合流的
卡夫卡河酒店
5.3.0
合流的
卡夫卡avro序列化程序
5.3.0
org.modelmapper
模型映射器
2.3.8
合流的
监视拦截器
5.3.1
我的应用程序的处理器类有2个函数-

@Bean
public Function<KStream<String, InputTopicEvent>, KStream<String, OutputTopicEvent>> f1() {
    return events -> event;
}

@Bean
public Function<KStream<String, InputTopicEvent>, KStream<String, OutputTopicEvent>> f2() {
    return events -> event;
}

@Bean
公共功能f1(){
返回事件->事件;
}
@豆子
公共职能f2(){
返回事件->事件;
}
整个代码工作正常,但一旦应用程序停止,输出主题上的数据就会丢失。 有人能帮忙解决这个问题吗