保留Apache Kafka中的数据

时间:2014-10-17 12:55:37

标签: java apache-kafka

我几天前刚刚开始阅读关于Apache kafka的内容,所以我对这项技术有点新手。我有一些疑问/疑问,需要澄清一下。如:

  1. 根据配置:log.retention.hours我们可以在这里设置持续时间。 数据保留时间可以延长2年吗?

  2. 根据link,它说:

  3.   

    Kafka群集保留所有已发布的消息 - 无论是否已被消费 - 在可配置的时间段内。例如,如果将日志保留设置为两天,那么在发布消息后的两天内,它可供消费,之后将被丢弃以释放空间。 Kafka的性能在数据大小方面实际上是恒定的,因此保留大量数据不是问题。

    正如已经说过的那样 Perfomance在数据大小方面实际上是恒定的。那么这是否意味着我们可以尽可能多地存储数据?它是否需要一些额外的配置或监控?

2 个答案:

答案 0 :(得分:5)

1)当然。 log.retention.hours是一个整数。 2年只需17520小时。远低于整数的最大值。

2)您可以存储适合您所拥有磁盘的数据。请注意,虽然如果存储更多数据,Kafka的性能不会下降,但是试图从磁盘获取大量数据的消费者绝对会影响性能。为了获得最佳性能,请确保消费者在保留在内存中时读取相对较新的数据。

答案 1 :(得分:0)

log.retention.hours可以保持100年以上的价值,所以不要担心。关于您的第二个问题,这意味着有时间在O(1)中检索您的邮件。

因此无论有多少数据,检索的时间都不会改变。