Kafka作为未来事件的数据存储

时间:2015-01-23 08:34:13

标签: java events integration message-queue apache-kafka

我有一个Kafka群集,它根据该源中的数据更改从源接收消息。在某些情况下,消息将在未来进行处理。所以我有两个选择:

  1. 使用不同的主题(主题名称中包含日期)消费所有消息并将未来的消息发回Kafka,并使用Storm拓扑查找其中包含该日期名称的主题。这将确保仅在其意图的当天处理消息。
  2. 将其存储在单独的数据库中,并构建一个调度程序,仅在将来的某个日期读取消息并发布到Kafka。
  3. 选项1更容易执行,但我的问题是:Kafka是一个持久的数据存储吗?有没有人和卡夫卡一起做过这种事件?设计中是否有任何漏洞?

1 个答案:

答案 0 :(得分:0)

您可以配置邮件在Kafka(log.retention.hours)中停留的时间。

但请记住,Kafka旨在用作生产者和消费者之间的“实时缓冲区”,而不是持久数据存储。我认为Kafka + Storm不适合您的用例。 为什么不在一些分布式文件系统中编写消息,并安排一个作业(MapReduce,Spark ...)来处理这些事件?