2017-06-18 74 views
3

有相當數量的文章描述瞭如何使用Kafka Streams來輸出新的Kafka主題,而不是保存到某種分佈式數據庫。Kafka Stream:首先輸出到主題或直接持續?

這只是一個常見用例,假定嵌入式db +交互式查詢已經足夠,或者有一些體系結構的原因,爲什麼在再次使用主題之前需要輸出主題才能保留它,而不是持久化直?

我不確定它是否有所作爲,但我所看到的示例的上下文是用於翻轉時間窗聚合。

回答

5

如果您只想從卡夫卡中提取數據並將其存儲在數據庫中,那麼Kafka Connect是最自然的方法。

另一方面,如果您的主要用例是進行聚合,那麼Kafka Streams確實是一個簡單而優雅的方法。如果您的首選數據庫已經存在Kafka Connect接收器,那麼將Kafka Streams輸出寫入主題,然後讓Kafka Connect接收器接收並存儲在您的數據庫中將是最直接的。如果沒有開箱即用的接收器,並且您必須編寫它,並且您認爲它不會足夠重用,那麼您可以選擇將其編寫爲自定義Kafka Streams處理器,並且不會輸出Kafka主題的輸出。

正如您所看到的,根據您的使用情況和您的喜好,可以有多種方式。沒有一個正確的方法,所以請考慮所涉及的權衡。