参考答案
Kafka 的复制机制,既不是完全的同步复制,也不是单纯的异步复制。
- 完全同步复制,要求 All Alive Follower 都复制完,这条消息才会被认为 commit,这种复制方式极大的影响了吞吐率。
- 异步复制方式,Follower 异步的从Leader复制数据,数据只要被 Leader 写入 log ,就被认为已经 commit ,这种情况下,如果leader挂掉,会丢失数据。
Kafka 使用 ISR 的方式,确保数据不丢失以及吞吐率。Follower可以批量的从Leader复制数据,而且Leader充分利用磁盘顺序读以及send file(zero copy)机制,这样极大的提高复制性能,内部批量写磁盘,大幅减少了Follower与Leader的消息量差。
以上,是 Kafka 面试题【Kafka follower 如何与 leader 同步数据】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—