2017-06-18 43 views
3

有相当数量的文章描述了如何使用Kafka Streams来输出新的Kafka主题,而不是保存到某种分布式数据库。Kafka Stream:首先输出到主题或直接持续?

这只是一个常见用例,假定嵌入式db +交互式查询已经足够,或者有一些体系结构的原因,为什么在再次使用主题之前需要输出主题才能保留它,而不是持久化直?

我不确定它是否有所作为,但我所看到的示例的上下文是用于翻转时间窗聚合。

回答

5

如果您只想从卡夫卡中提取数据并将其存储在数据库中,那么Kafka Connect是最自然的方法。

另一方面,如果您的主要用例是进行聚合,那么Kafka Streams确实是一个简单而优雅的方法。如果您的首选数据库已经存在Kafka Connect接收器,那么将Kafka Streams输出写入主题,然后让Kafka Connect接收器接收并存储在您的数据库中将是最直接的。如果没有开箱即用的接收器,并且您必须编写它,并且您认为它不会足够重用,那么您可以选择将其编写为自定义Kafka Streams处理器,并且不会输出Kafka主题的输出。

正如您所看到的,根据您的使用情况和您的喜好,可以有多种方式。没有一个正确的方法,所以请考虑所涉及的权衡。