原文地址:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-1.ControlledShutdown
controlled shutdown是啥意思?
在0.8版本中,每一个partition可以有多个replica。这些replica分布在多个broker上,提供了高可用。在任意的时间点上,只有一个replica可以提供读和写服务。换句话说,只有一个replica可以充当leader的角色。当一个broker需要关闭时(如果需要升级版本,改变配置参数时需要关闭),那么需要把当前broker上提供服务的leader partition迁移到其他同步中(in-sync)的replica上,这就是controlled shutdown工具的作用。
总的来说,它会减少不可用的时间窗口。如果我们简单的关闭一个broker而没有controlled shutdown的话,该broker上的leader partition就会不可用,直到选出一个新的leader。然后我们会顺序的每次选出一个partition作为leader,这个操作对ZK进行读写,选出所有的leader会花掉一些时间,特别是当有很多partition的时候。做一次controlled shutdown允许我们主动的转移leader,以此来减少不可用的时间窗口,有两种方法可以做到这一点。
第一种方法是在broker的配置文件中设置controlled.shutdown.enable。这样在broker关闭之前会尝试转移自己的leader到其他的broker上。还可以设置