在 Kafka 中存储每小时数据 |为现有系统设计消费者的问题
我必须在现有系统中用 Kafka 替换 Couchbase。在现有系统中,文档被写入 Couchbase,Java 程序从中读取数据,聚合内存中的数据,并在一小时结束时将数据存储在 SQL 中。 更多详细信息,请参阅本文。
现在制作人将写信给卡夫卡,这似乎是很简单的事情。问题出在消费者方面。
我希望每个消费者继续从 kafka 中读取数据,在内存中保持聚合(计数、求和)数据,并在一小时结束时将聚合保存在 SQL 中。 我在这方面面临以下挑战。
- 如何在多个消费者之间进行协调?就像如果消费者在保存到 SQL 之前失败一样,那么该小时数据的完整过程应该重新开始。 此问题的更多详细信息。
- 我应该创建单个主题还是每小时主题?每小时主题方法似乎不错,但我想了解这是否是正确的方法。
I have to replace Couchbase with Kafka in an existing system. In existing system, docs are being written to Couchbase and a java program reads from it, aggregates data in-memory and stores the data in SQL at the end of an hour.
More details in this article.
Now the producer will write to Kafka and that seems straight forward to do. Issue is with the consumer side.
I want each consumer to keep reading from kafka, keep aggregating(count, sum) data in-memory and at the end of the hour save the aggregations in SQL.
I am facing following challenges in this.
- How can I coordinate between multiple consumers? Like if a consumer fails before saving to SQL, then the complete process of that hour data should re-start. More details in this SO question.
- Should I create a single topic or hourly topic? Hourly topic approach seems good but I want to understand if that's a right approach or not.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论