Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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

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
Java Kakfa-在运行时更改拓扑属性_Java_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Java Kakfa-在运行时更改拓扑属性

Java Kakfa-在运行时更改拓扑属性,java,apache-kafka,apache-kafka-streams,Java,Apache Kafka,Apache Kafka Streams,我目前正在运行一组拓扑,我想在运行时更改拓扑属性,如 更改线程数 将源主题添加到现有主题列表 加水槽 是否可以在运行时更改属性而不停止kafka流。我的一个想法是停止卡夫卡流,然后加载这些配置并重新开始。但这似乎不是一个理想的解决方案。有人能提出更好的方法吗?这要看情况而定。更改实例的线程数很容易。您只需关闭KafkaStreams客户端,更改配置,创建一个新客户端并重新启动它。大多数人会通过完全重新启动相应的JVM来实现这一点 添加源主题和接收主题并不容易。特别是对于源主题,您需要停止所有实例

我目前正在运行一组拓扑,我想在运行时更改拓扑属性,如

更改线程数 将源主题添加到现有主题列表 加水槽
是否可以在运行时更改属性而不停止kafka流。我的一个想法是停止卡夫卡流,然后加载这些配置并重新开始。但这似乎不是一个理想的解决方案。有人能提出更好的方法吗?

这要看情况而定。更改实例的线程数很容易。您只需关闭KafkaStreams客户端,更改配置,创建一个新客户端并重新启动它。大多数人会通过完全重新启动相应的JVM来实现这一点

添加源主题和接收主题并不容易。特别是对于源主题,您需要停止所有实例,然后逐个重新启动它们,包括新的源主题。原因是,使用的分区赋值器假定所有实例都订阅了完全相同的主题。如果违反此假设,即,如果某些实例订阅了新主题,则新主题的那些分区可能会分配给尚未更新的旧实例,这将导致崩溃,因为旧实例不知道如何处理未订阅的已分配分区