图中分区日志是指日志数据目录(log.dir)下的分区数据吗?
是的。log.flush.interval.ms:topic中的消息在刷新到磁盘之前保存在内存中的最大时间(以毫秒为单位),如果未设置,则使用log.flush.scheduler.interval.ms。log.flush.scheduler.interval.ms:日志刷新的频率(以毫秒为单位)检查是否有任何日志需要刷新到磁盘。
图中的分区日志和刷盘都是指日志数据目录(log.dir)吗,那设置了log.flush.interval.ms后日志数据里面的东西是通过操作系统刷盘进去然后更改高水印值,这样的话消费者岂不是有很大的延迟?
对,数据落地都是指的log.dir。如果设置了log.flush.interval.ms就会取代系统的默认flush间隔。
log.flush.interval.ms
我看文档上log.flush.interval.ms如果没设置的话会用log.flush.scheduler.interval.ms,但log.flush.scheduler.interval.ms是个非常大的值那样怎么进行刷盘。还有一个问题,消费者不应该先去页缓存中里面读取数据吗,按照现在的描述是消费者根据log.dir分区日志中高水印值来获取信息的,难道消费者不需要用页缓存吗?
落磁盘的时候,数据才允许消费者读取,其实数据是在缓存的。参考:https://www.orchome.com/18
找不到想要的答案?提一个您自己的问题。
0 声望
这家伙太懒,什么都没留下
是的。
log.flush.interval.ms:topic中的消息在刷新到磁盘之前保存在内存中的最大时间(以毫秒为单位),如果未设置,则使用log.flush.scheduler.interval.ms。
log.flush.scheduler.interval.ms:日志刷新的频率(以毫秒为单位)检查是否有任何日志需要刷新到磁盘。
图中的分区日志和刷盘都是指日志数据目录(log.dir)吗,那设置了log.flush.interval.ms后日志数据里面的东西是通过操作系统刷盘进去然后更改高水印值,这样的话消费者岂不是有很大的延迟?
对,数据落地都是指的log.dir。
如果设置了
log.flush.interval.ms
就会取代系统的默认flush间隔。我看文档上log.flush.interval.ms如果没设置的话会用log.flush.scheduler.interval.ms,但log.flush.scheduler.interval.ms是个非常大的值那样怎么进行刷盘。还有一个问题,消费者不应该先去页缓存中里面读取数据吗,按照现在的描述是消费者根据log.dir分区日志中高水印值来获取信息的,难道消费者不需要用页缓存吗?
落磁盘的时候,数据才允许消费者读取,其实数据是在缓存的。
参考:https://www.orchome.com/18
你的答案