在Kafka流开发者指南中,它说:
Kafka流应用程序只能与此配置值指定的单个Kafka集群通信。未来版本的Kafka流将支持连接到不同的Kafka集群来读取输入流和写入输出流。
这是否意味着我的整个应用程序只能连接到一个卡夫卡集群,或者每个KafkaStreams实例只能连接到一个集群?
我是否可以创建多个KafkaStreams实例,它们具有连接到不同集群的不同属性?
发布于 2017-08-24 00:22:18
这意味着一个应用程序只能连接到一个集群。
我是否可以创建多个KafkaStreams实例,它们具有连接到不同集群的不同属性?
是的,完全正确。但这些不同的实例将是不同的应用程序。(想想“消费者群体”。)
更新:
在单个JVM中,您可以创建任意数量的KafkaStreams实例。您还可以将它们配置为连接到不同的集群(如果要进行相同的处理,则可以对所有集群使用相同的KStreamBuilder )。
发布于 2019-01-13 12:26:18
只是想补充一下@Matthias J. Sax给出的好答案。
这是否意味着我的整个应用程序只能连接到一个卡夫卡集群,或者每个KafkaStreams实例只能连接到一个集群?
我想这里有两个问题。
它依赖于“我的整个应用程序”的定义,即它可以是单个KafkaStreams实例,也可以是单个JVM上的多个实例,或者是作为pod执行的Docker容器中单个JVM上的多个KafkaStreams实例。不管它是什么,你都会发现“我的整个应用程序”太宽泛了,而且不太精确。
关键是,您不可能创建一个可以与多个Kafka集群对话的KafkaStreams实例(因为配置是通过映射中的键值对的属性进行的),因此您可以回答自己的问题,不是吗?
由于无法在卡夫卡流应用程序中使用两个或多个卡夫卡集群,这是卡夫卡流和星火结构化流之间的区别之一(后者可以使用任意数量的卡夫卡集群,因此可以在不同的Kafka集群之间构建管道)。
https://stackoverflow.com/questions/45847690
复制相似问题