首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kafka中的动态流拓扑

Kafka中的动态流拓扑
EN

Stack Overflow用户
提问于 2019-06-18 06:26:25
回答 1查看 789关注 0票数 1

使用Kafka流DSL https://kafka.apache.org/0110/documentation/streams/developer-guide创建Kafka流时

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

例如:当我们开始的时候,我们定义了一个拓扑来读取一个主题(来源)和一个目标主题(Sink)。但是,在进行配置更改时,我们现在需要从两个不同的主题(如果需要的话是两个源)进行读取,并将其写入单个目标主题。

从我们现在构建的内容来看,拓扑定义是硬编码的,类似于在处理器拓扑中定义的。

问题:

  1. 是否可以以声明式的方式(例如Json或其他什么)定义拓扑,而不需要对拓扑进行编码?
  2. 是否有可能重新加载一个现有的Kafka流使用一个新的定义卡夫卡流拓扑?
  3. 对于上面提到的#2,Kafka Streams DSL是否提供了一种通过外部触发器或系统调用“重新加载”新拓扑定义的方法?

我们使用JDK 1.8和Kafka DSL 2.2.0

谢谢你,阿尤斯曼

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-18 15:12:13

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

KStreams DSL是声明性的,但我假设您的意思不是DSL?

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

是否有可能重新加载一个现有的Kafka流使用一个新的定义卡夫卡流拓扑?

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

根据旧的/新的拓扑是如何定义的,应用程序的简单滚动升级可能就足够了(粗略地说:如果拓扑变化最小),但是您可能需要单独部署新应用程序,然后在对新应用程序进行审查之后,将旧应用程序分解。

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

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

不是的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56642862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档