在 Apache Kafka 中,有几种数据保留策略用于定义消息保存的时长和数据保留的规则。这些策略主要影响 Kafka 中的 Topic。
以下是 Kafka 中常见的数据保留策略:
保留时间策略(retention.ms
):
log.retention.hours
或 log.retention.ms
来设置保留的小时数或毫秒数。保留大小策略(retention.bytes
):
log.retention.bytes
来设置保留的字节数。Compact 策略(cleanup.policy
):
cleanup.policy
用于定义是否启用 Log Compaction,以及使用何种策略进行 Compaction。"compact"
表示启用 Compaction,即保留最新的消息以及具有相同 key 的最新消息。下面是一个简单的 Kafka 配置文件示例,展示了如何配置数据保留策略:
# Kafka 配置文件示例
# 设置消息在 Topic 中的最大保留时间为 7 天
log.retention.hours=168
# 设置消息在 Topic 中的最大保留大小为 1 GB
log.retention.bytes=1073741824
# 启用 Log Compaction,并使用 Compact 策略
cleanup.policy=compact
在上述配置中,消息将在 Topic 中保留最多 7 天,超过这个时间的消息将被删除。同时,如果消息大小超过 1 GB,也将被删除。另外,启用了 Log Compaction 以确保消息中相同 key 的最新消息被保留。
请注意,这里只是一个简单的配置示例,实际配置可能会根据具体需求进行调整。