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

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)→ 根据策略删除/压缩

相关文章:

  • 【前端基础】7、CSS的字体属性(font相关)
  • 《Python星球日记》 第47天:聚类与KMeans
  • 学习笔记:黑马程序员JavaWeb开发教程(2025.3.30)
  • 项目模拟实现消息队列第二天
  • spring 事务实现原理
  • RabbitMq学习(第一天)
  • C++中的位运算符:与、或、异或详解
  • 阿里云2核2g安装nexus
  • shell脚本--2
  • 如何在大型项目中解决 VsCode 语言服务器崩溃的问题
  • 【shardingsphere分布式主键无效】
  • Kubernetes(k8s)学习笔记(八)--KubeSphere定制化安装
  • C 语言编码规范
  • Selenium使用指南
  • 21. LangChain金融领域:合同审查与风险预警自动化
  • 802.11s Mesh 组网框架流程
  • 排序算法——桶排序
  • 一个电平转换电路导致MCU/FPGA通讯波形失真的原因分析
  • 阿里云codeup以及本地gitclone+http
  • AB测试面试题
  • 巴基斯坦全面恢复领空开放
  • 比特币价格重返10万美元,哪些因素使然?
  • 央行谈MLF:逐步退出政策利率属性回归流动性投放工具
  • 中方是否认同俄方关于新纳粹主义观点?外交部:联大曾多次通过相关决议
  • 纪录片《中国》原班人马打造,《船山先生》美学再升级
  • 特朗普称美军舰商船应免费通行苏伊士运河,外交部:反对任何霸凌言行