[英]Dynamic Streams Topology in Kafka
使用Kafka Streams DSL創建Kafka Streams時https://kafka.apache.org/0110/documentation/streams/developer-guide
我們遇到了需要用新的拓撲定義更新Kafka流的情況。
例如:開始時,我們定義了一個拓撲以讀取一個主題(源)和目標主題(接收器)。 但是,在配置更改時,我們現在需要閱讀2個不同的主題(如果需要,請閱讀2個來源)並寫入單個目標主題。
從我們現在已經構建的內容來看,拓撲定義是硬編碼的,類似於處理器拓撲中的定義。
問題:
是否可以以聲明性的方式(例如在Json或其他方式中)定義拓撲,而無需對拓撲進行編碼?
是否可以重新加載現有的Kafka Stream以使用Kafka Streams拓撲的新定義?
對於上述#2,Kafka Streams DSL是否提供一種通過外部觸發器或系統調用“重新加載”新拓撲定義的方法?
我們正在使用JDK 1.8和Kafka DSL 2.2.0
謝謝,Ayusman
是否可以以聲明性的方式(例如在Json或其他方式中)定義拓撲,而無需對拓撲進行編碼?
KStreams DSL是聲明性的,但我認為您的意思不是DSL?
如果是這樣,答案是否定的。但是,您可能要看一下KSQL。
是否可以重新加載現有的Kafka Stream以使用Kafka Streams拓撲的新定義?
您的意思是說,現有的Kafka Streams 應用程序是否可以重新加載處理拓撲的新定義? 如果是這樣,答案是否定的。在這種情況下,您將部署新版本的應用程序。
根據舊/新拓撲的定義方式,對應用程序進行簡單的滾動升級就足夠了(大約:如果拓撲更改很小),但是可能需要分別部署新應用程序,然后在新應用程序部署完畢后進行部署。經過審查,停用舊應用程序。
注意:KStreams是一個Java庫,從設計上講,它不包括操作/管理使用KStreams庫的Java應用程序的功能。
對於上述#2,Kafka Streams DSL是否提供一種通過外部觸發器或系統調用“重新加載”新拓撲定義的方法?
沒有。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.