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
Apache kafka 在具有不同@StreamListener的两个实例之间嵌入Kafka迁移状态存储_Apache Kafka_Spring Cloud_Apache Kafka Streams_Spring Kafka_Embedded Kafka - Fatal编程技术网

Apache kafka 在具有不同@StreamListener的两个实例之间嵌入Kafka迁移状态存储

Apache kafka 在具有不同@StreamListener的两个实例之间嵌入Kafka迁移状态存储,apache-kafka,spring-cloud,apache-kafka-streams,spring-kafka,embedded-kafka,Apache Kafka,Spring Cloud,Apache Kafka Streams,Spring Kafka,Embedded Kafka,我有一个SpringBoot应用程序,它有两个通过SpringCloud映射的流处理器。对于不同的主题,每个处理器都有自己的@StreamListener。一个处理器将聚合数据写入quarable状态存储。当通过@Service(Service从状态存储获取聚合数据)获取数据时,我在单元测试中遇到了这个问题。出于某些原因,有时捕获异常: org.apache.kafka.streams.errors.InvalidStateStoreException:状态存储(最近播放的存储)可能已迁移到另一

我有一个SpringBoot应用程序,它有两个通过SpringCloud映射的流处理器。对于不同的主题,每个处理器都有自己的@StreamListener。一个处理器将聚合数据写入quarable状态存储。当通过@Service(Service从状态存储获取聚合数据)获取数据时,我在单元测试中遇到了这个问题。出于某些原因,有时捕获异常:

org.apache.kafka.streams.errors.InvalidStateStoreException:状态存储(最近播放的存储)可能已迁移到另一个实例。
位于org.apache.kafka.streams.state.internals.QueryableStoreProvider.getStore(QueryableStoreProvider.java:60)
位于org.apache.kafka.streams.KafkaStreams.store(KafkaStreams.java:1043)
位于org.springframework.cloud.stream.binder.kafka.streams.QueryableStoreRegistry.getQueryableStoreType(QueryableStoreRegistry.java:47)

当我从另一个处理器中删除StreamListener时,所有这些都工作良好且稳定


如何将状态存储绑定到合适的处理器上?

我已经找到了解决问题的方法,也许它会帮助其他人。 我没有使用最新版本的SpringCloudStream活页夹kafka streams。我的版本是2.0.0,它有一个bug。它仅在版本2.0.1中修复