Kafka分区副本的同步条件

分区leader是同步副本,而对于跟随者副本来说,它需要同时满足以下条件才可以被认为是同步的:

1.与Zookeeper之间保持活跃的会话,即在过去的6s(可配置)内向Zookeeper发送过心跳。

2.在过去的10s(可配置)从分区leader那里获取过消息。

3.在过去10s从leader那里获取过最新的消息,这个条件保证了从leader那里获取的消息是无延迟的。

一个非同步副本通过与Zookeeper重新建立连接,并从分区leader那里获取最新消息,可以重新变成同步副本。这个过程在网络出现临时问题并很快得到修复的情况下会很快完成,但如果Broker发送崩溃就需要较长时间。

注意:如果一个或者多个副本在同步和非同步状态之间快速切换,说明集群内部出现了问题,通常是Java不恰当的垃圾回收配置导致的。不恰当的垃圾回收配置会造成几秒的停顿,从而让Broker与Zookeeper之间断开连接,最后变成不同步的,进而发生状态切换。

猜你喜欢

转载自blog.csdn.net/Wengzhengcun/article/details/83929686