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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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 卡夫卡的动态流拓扑_Java_Apache Kafka_Apache Kafka Streams - Fatal编程技术网

Java 卡夫卡的动态流拓扑

Java 卡夫卡的动态流拓扑,java,apache-kafka,apache-kafka-streams,Java,Apache Kafka,Apache Kafka Streams,使用Kafka Streams DSL创建Kafka Streams时 我们遇到了一个场景,需要使用新的拓扑定义更新Kafka流 例如: 开始时,我们定义了一个拓扑,用于从一个主题(源)和一个目标主题(接收器)读取。 但是,在配置更改时,我们现在需要从两个不同的主题(如果愿意,可以从两个源)读取内容,然后写入一个目标主题 根据我们现在构建的,拓扑定义是硬编码的,类似于中定义的 问题: 是否可以用声明性的方式(比如Json或其他方式)定义拓扑,而不需要对拓扑进行编码 是否可以重新加载现有卡夫卡流

使用Kafka Streams DSL创建Kafka Streams时

我们遇到了一个场景,需要使用新的拓扑定义更新Kafka流

例如: 开始时,我们定义了一个拓扑,用于从一个主题(源)和一个目标主题(接收器)读取。 但是,在配置更改时,我们现在需要从两个不同的主题(如果愿意,可以从两个源)读取内容,然后写入一个目标主题

根据我们现在构建的,拓扑定义是硬编码的,类似于中定义的

问题:

  • 是否可以用声明性的方式(比如Json或其他方式)定义拓扑,而不需要对拓扑进行编码

  • 是否可以重新加载现有卡夫卡流以使用卡夫卡流拓扑的新定义

  • 对于上面提到的#2,Kafka Streams DSL是否提供了通过外部触发器或系统调用“重新加载”新拓扑定义的方法

  • 我们正在使用JDK1.8和卡夫卡DSL2.2.0

    谢谢, 阿尤斯曼

    是否可以用声明性的方式(比如Json或其他方式)定义拓扑,而不需要对拓扑进行编码

    KStreams DSL是声明性的,但我想你指的是DSL以外的东西

    如果是这样的话,答案是否定的。不过,您可能想看看KSQL

    是否可以重新加载现有卡夫卡流以使用卡夫卡流拓扑的新定义

    您的意思是,现有的Kafka Streams应用程序是否可以重新加载处理拓扑的新定义?如果是这样,答案是否定的。在这种情况下,您应该部署应用程序的新版本

    根据旧/新拓扑的定义方式,应用程序的简单滚动升级可能就足够了(大致是:如果拓扑变化很小),但可能需要单独部署新应用程序,然后,一旦新应用程序被审查,旧应用程序将退役

    注意:KStreams是一个Java库,根据设计,它不包括操作/管理使用KStreams库的Java应用程序的功能

    对于上面提到的#2,Kafka Streams DSL是否提供了通过外部触发器或系统调用“重新加载”新拓扑定义的方法


    不。

    Hey@Michael G.Noll您来自Confluent,正如您的个人资料所示。您关于“介绍卡夫卡流”的演讲内容丰富。谢谢