ZK is a tool for keeping your main components high available with a master-slaves model.If the master fails,ZK will notice all the other slaves,and then all the slaves will set the master path again in ZK,and it's the first one to set the master path successfully to be selected for the new master. Of course ZK supports HA itself.