相当多的文章描述了实现Kafka流的使用,其中它们输出到新的Kafka主题,而不是保存到某种分布式数据库。
这只是一个常见的用例,假设嵌入的db +交互式查询就足够了,还是有一些架构上的原因,为什么人们想要在再次消费主题来持久化它之前输出它,而不是直接持久化?
我不确定这是否有区别,但我正在查看的示例的上下文是针对翻滚时间窗口聚合的。
发布于 2017-06-19 04:10:43
如果你想要的是从kafka中取出数据并将其存储在数据库中,那么Kafka Connect是最自然的方式。
另一方面,如果您的主要用例是进行聚合,那么Kafka Streams确实是一种简单而优雅的方式。如果您的首选数据库已经存在Kafka Connect接收器,那么最直接的方法就是让Kafka Streams将输出写入主题,然后让Kafka Connect接收器拾取输出并将其存储在数据库中。如果不存在开箱即用的接收器,并且您必须编写它,并且您认为它没有足够的可重用性,那么您可以选择将其编写为自定义Kafka Streams处理器,而不是输出Kafka主题。
正如您所看到的,根据您的用例和偏好,有多种方法可供选择。没有一种正确的方法,所以请考虑所涉及的权衡。
https://stackoverflow.com/questions/44618514
复制相似问题