9、Kafka flush刷盘机制

熟悉Linux操作系统原理的都知道,当我们把数据写入到文件系统之后,数据其实在操 作系统的page cache里面,并没有刷到磁盘上去。如果此时操作系统挂了,其实数据就 丢了。

一方面,应用程序可以调用fsync这个系统调用来强制刷盘;
另一方面,操作系统有后 台线程,定期刷盘。

如果应用程序每写入1次数据,都调用一次fsync,那性能损耗就很大,所以一般都会 在性能和可靠性之间进行权衡。因为对应一个应用来说,虽然应用挂了,只要操作系统 不挂,数据就不会丢。

另外, kafka是多副本的,当你配置了同步复制之后。多个副本的数据都在page cache里 面,出现多个副本同时挂掉的概率比1个副本挂掉,概率就小很多了。

对于kafka来说,也提供了相关的配置参数,来让你在性能与可靠性之间权衡:
kafka broker端配置

log.flush.interval.messages		在将消息刷新到磁盘之前,在日志分区上累积的消息数量
log.flush.interval.ms			在刷新到磁盘之前,任何topic中的消息保留在内存中的最长时						间(以毫秒为单位)。如果未设置,则使用										log.flush.scheduler.interval.ms中的值
log.flush.scheduler.interval.ms	日志刷新器检查是否需要将所有日志刷新到磁盘的频								率
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值