在 https://zhuanlan.zhihu.com/p/354473384 看到一些kafka数据可靠性的问题,里面提到:
数据从leader同步到follower,需要2步:
- 数据从pageCache被刷盘到disk。因为只有disk中的数据才能被同步到replica。
- 数据同步到replica,并且replica成功将数据写入PageCache。在producer得到ack后,哪怕是所有机器都停电,数据也至少会存在于leader的磁盘内。
这里对第一步有些疑问,我觉得应该是如果数据在pagecache有,follower同步的时候就直接取走了,不用走磁盘IO,请问是这样吗?
从磁盘拿,为了确保flush到了磁盘了。
可以看下这篇文章:kafka效率
您好,大神。我从kafka效率的文章里面,没有找到相关的段落说会从磁盘拿,能麻烦您指一下吗?
如果按您所说从磁盘拿,那
acks=all
的时候,leader的落盘,是不是可以理解为就是同步落盘了?你的答案