Kafka配置消息保存时间的方法

配置参考

然后不废话,直接贴最终的关键配置:

1# 想实现消息队列中保存2小时的消息,那么配置应该像这样: 2log.roll.hours=1 3log.retention.hours=2 4log.segment.delete.delay.ms=0

Kafka日志存储机制分析

首先先贴一下对我帮助很大的一篇文档: https://www.zybuluo.com/jewes/note/64450 。这篇文章详细阐述了kafka的日志存储机制,建议深入阅读。

然后我简述一下。我们将对照kafka的broker配置简单说明一下: http://kafka.apache.org/documentation.html#brokerconfigs

Kafka的持久化策略更像redis —— 数据都在内存中,定期flush到硬盘上持久化存储,以保证重启的时候数据不丢。flush策略由log.flush.*这些properties控制。

每个topic可以存储于多个partition,每个partition在kafka的log目录下表现为topicname-id这样的文件夹,如mytopic-0。kafka队列中的内容会按照日志的形式持久化到硬盘上。每个日志文件称为“段”(segment)。

Kafka清理队列中过期message的方式实际上就是删除过期的segment,这种表现形式十分类似于日志滚动。因此,控制kafka队列中消息的保存时间的方式实际上就是日志文件定期分段,然后定期清理掉过期的段文件

与控制分段策略相关的几个properties:

1log.roll.{hours,ms} —— 日志滚动的周期时间(小时,毫秒,log.roll.ms优先级更高),到达指定周期时强制生成一个新的segment。 2log.segment.bytes —— 每个segment的最大容量上限(默认1GB)。到达指定容量时会强制生成一个新的segment。

与过期segment处理策略相关的几个properties:

1cleanup.policy={compact,delete} —— 过期segment处理算法,默认delete2log.retention.{hours,minutes,ms} —— 日志保留时间(小时,分钟,毫秒。优先级依次升高),超出保留时间的日志执行cleanup.policy定义的操作 3log.segment.delete.delay.ms —— 删除日志文件前的保留一段时间。默认600004log.retention.check.interval.ms —— log checker的检测是否需要删除文件的周期。默认300000

现在解释一下开头的配置段的含义——每小时滚动一个日志文件,日志删除(cleanup.policy默认为delete)时间为2小时,

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

Kafka配置消息保存时间的方法 - HelloWorld