kafka---消息日志详解

一、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 

相关推荐

  1. kafka---消息日志详解

    2024-07-21 06:46:01       19 阅读
  2. Kafka 消息保留策略及其影响详解

    2024-07-21 06:46:01       22 阅读
  3. Kafka之【消费消息

    2024-07-21 06:46:01       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 06:46:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 06:46:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 06:46:01       45 阅读
  4. Python语言-面向对象

    2024-07-21 06:46:01       55 阅读

热门阅读

  1. 人工智能与机器学习原理精解【2】

    2024-07-21 06:46:01       15 阅读
  2. python中的items()函数

    2024-07-21 06:46:01       16 阅读
  3. Perl中的设计模式革新:命令模式的实现与应用

    2024-07-21 06:46:01       18 阅读
  4. Perl的文本艺术:精通格式化输入输出

    2024-07-21 06:46:01       21 阅读
  5. PHP 安装指南

    2024-07-21 06:46:01       18 阅读
  6. C# 中的委托

    2024-07-21 06:46:01       15 阅读
  7. 时序数据库-04-InfluxData-分布式时序数据库

    2024-07-21 06:46:01       21 阅读
  8. ue5笔记

    ue5笔记

    2024-07-21 06:46:01      19 阅读
  9. Python之后端Django(三)

    2024-07-21 06:46:01       17 阅读
  10. 刷题Day58|108. 冗余连接、109. 冗余连接II

    2024-07-21 06:46:01       15 阅读
  11. FLINK-checkpoint失败原因及处理方式

    2024-07-21 06:46:01       14 阅读
  12. HALCON数据结构

    2024-07-21 06:46:01       15 阅读