当前位置: 首页> 科技> 互联网 > kafka---消息日志详解

kafka---消息日志详解

时间:2025/9/11 2:16:43来源:https://blog.csdn.net/qq_41768644/article/details/138542539 浏览次数:0次

一、Log Flush Policy(log flush 策略)

1、设置内存中保留日志的个数,当达到这个数量的时候,内存中的数据会被强制刷到disk中
log.flush.interval.messages=10000

2、设置内存中保留日志的时间,当达到这个时间的时候,日志会被刷新到disk中
log.flush.interval.ms=1000

二、Log Retention Policy (日志保留策略)

1、 日志保留时间,超过该时间,日志会被删除
log.retention.hours=48

2、设置一个分区的大小(该分区包含所有的segment文件),segment文件会被删除(pruned)直到剩余的segment文件小于(drop below)该设置大小
A size-based retention policy for logs. Segments are pruned from the log unless the remaining segments drop below log.retention.bytes. Functions independently of log.retention.hours.

log.retention.bytes=1073741824

3、设置一个segment的大小,当达到这个大小的时候,会创建一个新的segment新文件重新写日志
log.segment.bytes=1073741824

4、设置一个时间间隔,用于检查是否需要删除segment文件(检查是否需要删除的频率)
log.retention.check.interval.ms=300000

5、日志文件被真正删除前的保留时间
log.segment.delete.delay.ms=60000

注意:当删除的条件满足的视乎,日志将会被"删除",但是这里的删除其实只是将该日志进行了”delete“标注,文件只是无法被索引到了而已,但是文件本身仍然是存在的,只有当过了log.segment.delete.delay.ms这个时间后,文件才会被删除

三、问题

Q1 kafka消费的是内存中的数据还是磁盘中的数据?消息流转流程?

既会消费内存中的数据也会消费磁盘上的数据

producer----broker内存------flush到磁盘----加载到broker内存----consumer消费
|-------consumer消费

Q2 log.flush.interval.messages 与 log.flush.interval.ms 这两个参数以哪个为准?

上述两个参数,设置了哪个参数,则哪个参数生效,如果没设置则按照默认值来;如果都设置了,则任意一个达到要求都会执行flush
log.flush.interval.messages 默认值 9223372036854775807
log.flush.interval.ms 默认值为ull,如果未设置,则使用log.flush.scheduler.interval.ms 默认值 9223372036854775807

Q3 log.retention.hours 与 log.retention.bytes 这两个参数以哪个为准?

上述两个参数,设置了哪个参数,则哪个参数生效,如果没设置则按照默认值来;如果都设置了,则任意一个达到要求都会执行删除;
log.retention.hours 默认是168h,达到这个时间,会执行清理策略
log.retention.bytes 默认是-1 则大小无上限

Q4 未被消费的数据,但是达到了时间上限或者大小上限 ,日志会被删除吗?

会被删除

Q5 如何查看消息消费进度

kafka-consumer-groups  --bootstrap-server "ip1:port1,ip2:port2,ip3,port3"  --group "group1" --group "group2"   --describe 
关键字:kafka---消息日志详解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: