2017-06-20 48 views
2

據我瞭解,在閱讀Kafka Streams文檔後,無法將其用於從給定主題中的一個分區流式傳輸數據,因此總是需要將其全部讀取。從一個主題中的特定分區(Kafka Streams)流式傳輸

這是正確的嗎?

如果是這樣,是否有計劃在將來爲API提供這樣的選項?

+0

這個問題不是很清楚。流式傳輸應用程序的來源可以是隻有一個分區的主題。但是,我可能沒有理解這個問題......請你詳細說明一下嗎? – ppatierno

+0

我會舉一個例子。讓我們假設我有10個分區的主題「A」,並且我想從這個主題流式傳輸數據,但僅從分區4傳輸數據,而不從其他分區中收集數據。 – Purple

+0

然後,您需要僅將分區4中的數據複製到只有1個分區的另一個主題,並將其用作Streams的輸入。 –

回答

2

不,您不能這樣做,因爲內部使用者訂閱加入通過application-id指定的使用者組的主題,以便自動分配分區。 順便說一句,你爲什麼要這樣做? 如果不重新平衡,您會失去Kafka Stream提供的可擴展性功能,因爲只需添加/刪除流應用程序的實例即可縮放整個流程,這要感謝分區的重新平衡。

+1

我想有這樣的功能,因爲有些情況下我完全知道哪些分區是我感興趣的數據。因此,僅從此特定分區進行流式傳輸應該會帶來更好的性能,因爲要過濾的數據較少。但謝謝澄清! – Purple

2

您可以使用PartitionGrouper做類似於您的需求的操作。分區分組可用於根據給定的主題分區創建流任務。

例如,請參閱DefaultPartitionGrouper實現。但它需要定製。

因此,如@ppatierno建議,請查看您的用例,然後設計拓撲結構,使其不必偏離標準做法。

相關問題