我们有一个场景,我们要使用集群1上的kafka主题的数据,但是要在集群2上创建KTable主题(分区和更改日志)。
频道绑定-
spring.cloud.stream.bindings.member.destination: member
spring.cloud.stream.bindings.member.consumer.useNativeDecoding: true
spring.cloud.stream.bindings.member.consumer.headerMode: raw
spring.cloud.stream.kafka.streams.bindings.member.consumer.keySerde: org.apache.kafka.common.serialization.Serdes$StringSerde
spring.cloud.stream.kafka.streams.bindings.member.consumer.valueSerde: io.confluent.kafka.streams.serdes.avro.GenericAvroSerde
创建Ktable-
protected KTable<String, GenericRecord> createKTable(String field, KStream<String, GenericRecord> stream, String stateStore) {
return stream
.map((s, genericRecord) -> KeyValue.pair(field, genericRecord))
.groupByKey()
.reduce((oldVal, newVal) -> newVal, Materialized.as(stateStore));
}
因此成员主题位于集群1上,但是我们想在不同集群上创建以下ktable主题,不确定在这种情况下如何使用两种不同的kafka活页夹-
application-member-store-repartition
application-member-store-changelog
答案 0 :(得分:1)
单个Kafka Streams应用程序只能连接到一个群集。 根据下面链接的答案,您可以创建两个不同的实例,但是它们将是不同的应用程序。