当前位置: 首页 > ds >正文

Kafka的消息保留策略是怎样的? (基于时间log.retention.hours或大小log.retention.bytes,可配置删除或压缩策略)

Kafka 消息保留策略详解

1. 核心保留机制
# Broker 基础配置示例(server.properties)
log.retention.hours=168    # 默认7天保留时间
log.retention.bytes=1073741824  # 1GB 大小限制
2. 策略类型对比
策略类型配置参数执行逻辑适用场景
时间删除log.retention.ms/hours定期删除过期消息(默认策略)日志类数据
大小删除log.retention.bytes达到阈值后删除旧数据存储受限环境
日志压缩cleanup.policy=compact保留key最新版本(offset不重置)关键状态数据(如账户余额)
3. 压缩策略工作流程
┌───────────────────────┐
│  原始日志             │
│  key=A, value=100     │
│  key=B, value=200     │
│  key=A, value=150  → 压缩 →  key=A, value=150
│  key=C, value=300     │       key=B, value=200
└───────────────────────┘       key=C, value=300
4. 配置实践建议
# Topic级别配置示例
bin/kafka-configs --alter --entity-type topics \
--entity-name orders \
--add-config retention.ms=604800000,cleanup.policy=compact \
--bootstrap-server localhost:9092
5. 策略组合规则
  • 时间和大小策略同时生效(任一条件触发即删除)
  • 压缩策略需要显式单独启用
  • 建议配置(金融交易场景):
log.cleaner.enable=true
log.cleanup.policy=compact,delete
log.retention.bytes=-1  # 禁用大小限制
log.retention.ms=259200000  # 3天保留
6. 数据删除过程
活跃段(Active Segment) → 只写不删
闭合段(Closed Segments)→ 根据策略删除/压缩
http://www.xdnf.cn/news/4541.html

相关文章:

  • 强缓存与协商缓存的实现机制
  • AKS 网络深入探究:Kubenet、Azure-CNI 和 Azure-CNI(overlay)
  • 基于LVS实现负载均衡,对NAT模式的介绍和使用案例
  • LeetCode第190题_颠倒二进制位
  • 云蝠智能大模型语音交互智能体赋能电视台民意调研回访:重构媒体数据采集新范式
  • 2:点云处理—3D相机开发
  • 如何在Idea中编写Spark程序并运行
  • 【Bug经验分享】SourceTree用户设置必须被修复/SSH 主机密钥未缓存(踩坑)
  • Windows_PyCharm Python语言开发环境构建
  • 常见dp问题的状态表示
  • MCPHub:一站式MCP服务器聚合平台
  • CI/CD与DevOps流程流程简述(给小白运维提供思路)
  • Spring AI(1)—— 基本使用
  • QT中connect高级链接——指针、lambda、宏
  • 基于Qt的app开发第六天
  • 如何理解k8s中的controller
  • 缓存菜品-01.问题分析和实现思路
  • Carlink 技术:搭建汽车与手机的智能桥梁
  • GPAW安装流程——Ubuntu 系统(Python 3.8.10)
  • AI视觉质检的落地困境与突破路径
  • 工业现场ModbusTCP转EtherNETIP网关引领生物现场领新浪潮
  • gcloud 查看gke集群节点组是否开启了自动伸缩?
  • CAN报文逆向工程
  • node.js 实战——餐厅静态主页编写(express+node+ejs+bootstrap)
  • LangChain4j简介
  • Android开发-文本显示
  • 【2019 CWE/SANS 25 大编程错误清单】12越界写入
  • dubbo-token验证
  • 路由器WAN口和LAN口
  • 大数据技术全景解析:Spark、Hadoop、Hive与SQL的协作与实战