数据在 kafka 服务器中存储多长时间?

San*_*jiv 5 apache-kafka

假设我要从 kafka 生产者向 kafka 消费者发送一些消息,那么它将存储在哪里?是否有用于存储消息的数据库?消息存储多长时间?

任何人都可以请解释一下。

Gio*_*ous 10

数据是从 Kafka 主题产生/使用的。一个主题是核心抽象,卡夫卡提供的记录流。主题类似于典型数据库中的表。

如果您想将数据从 Kafka 移动到数据库中(反之亦然),您可以使用 Confluent 的捆绑连接器,它可以从一些最常用的数据系统导入和导出数据。

关于可以在主题中保留数据的时间段,您需要查找保留策略和时间段。

Kafka 集群使用可配置的保留期持久地保留所有已发布的记录(无论它们是否已被使用)。例如,如果保留策略设置为两天,那么在一条记录发布后的两天内,它可供消费,之后将被丢弃以释放空间。

保留期是一个可配置的参数,允许您根据需要存储数据。例如,如果您配置以下参数;

log.retention.minutes=3
log.cleanup.policy=delete
Run Code Online (Sandbox Code Playgroud)

一条消息将保留该主题 3 分钟。有关这些参数的更多细节,看看在代理配置参数,你也可以找到信息,对于一些相关的主题保留更多的参数(如log.retention.byteslog.segment.byteslog.retention.check.intervallog.roll.ms等)。

我对您的建议是从官方文档中的介绍性材料开始,以便能够了解 Kafka 的一般工作原理

  • 可能还值得一提的是 Kafka Streams 端的 RocksDB。我相信这就是OP所说的数据库 (2认同)