轻拔琴弦|Kafka设计原理详解( 三 )


举例当producer生产消息至broker后 , ISR以及HW和LEO的流转过程
轻拔琴弦|Kafka设计原理详解由此可见 , Kafka的复制机制既不是完全的同步复制 , 也不是单纯的异步复制 。 事实上 , 同步复制要求所有能工作的follower都复制完 , 这条消息才会被commit , 这种复制方式极大的影响了吞吐率 。 而异步复制方式下 , follower异步的从leader复制数据 , 数据只要被leader写入log就被认为已经commit , 这种情况下如果follower都还没有复制完 , 落后于leader时 , 突然leader宕机 , 则会丢失数据 。 而Kafka的这种使用ISR的方式则很好的均衡了确保数据不丢失以及吞吐率 。
结合HW和LEO看下 acks=1的情况
轻拔琴弦|Kafka设计原理详解


推荐阅读