log.flush.interval.ms参数的刷新到磁盘是指把数据写入到日志数据目录(log.dir)吗?

╰✿つ樱 落、 发表于: 2020-01-20   最后更新时间: 2020-01-20  

图中分区日志是指日志数据目录(log.dir)下的分区数据吗?
screenshot



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




上一条: kafka consumer lag 为负数
下一条: kafka鉴权配置

  • 是的。
    log.flush.interval.ms:topic中的消息在刷新到磁盘之前保存在内存中的最大时间(以毫秒为单位),如果未设置,则使用log.flush.scheduler.interval.ms。
    log.flush.scheduler.interval.ms:日志刷新的频率(以毫秒为单位)检查是否有任何日志需要刷新到磁盘。

    • 图中的分区日志和刷盘都是指日志数据目录(log.dir)吗,那设置了log.flush.interval.ms后日志数据里面的东西是通过操作系统刷盘进去然后更改高水印值,这样的话消费者岂不是有很大的延迟?

        • 我看文档上log.flush.interval.ms如果没设置的话会用log.flush.scheduler.interval.ms,但log.flush.scheduler.interval.ms是个非常大的值那样怎么进行刷盘。还有一个问题,消费者不应该先去页缓存中里面读取数据吗,按照现在的描述是消费者根据log.dir分区日志中高水印值来获取信息的,难道消费者不需要用页缓存吗?