一、Log Flush Policy(log flush 策略)
二、Log Retention Policy (日志保留策略)
三、问题
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