kafka设置消息存放时间有两种配置
- 通过kafka server.properties配置文件
log.retention.hours=8
- 新建topic的时候添加参数
from confluent_kafka.admin import AdminClient, NewTopic
# Configure Kafka admin client
admin_conf ={'bootstrap.servers':'localhost:9092'}
admin_client = AdminClient(admin_conf)# Define topic configuration
topic_config ={'retention.ms':'604800000'# 7 days}# Define topic properties
topic_properties = NewTopic(
topic='my-topic',
num_partitions=1,
replication_factor=1,
config=topic_config
)# Create topic
admin_client.create_topics([topic_properties])
- 假如broker配置的retention和topic的设置的retention不一致 如果topic的retention时间比broker log的时间小,kafka仍然会删除消息,即使topic的retention没到期。换句话说kafka会取二者的最小值设置消息的生命周期。
比如topic设置消息保存时间是7天,broker设置保存1天。这种情况下,kafka会在一天后删除消息
为了避免消息在topic设置的到期之前被删除,至少需要保证broker的log retention时间大于等于topic的retention时间
本文转载自: https://blog.csdn.net/weixin_43632687/article/details/129691196
版权归原作者 会飞的尼古拉斯 所有, 如有侵权,请联系我们删除。
版权归原作者 会飞的尼古拉斯 所有, 如有侵权,请联系我们删除。