一、ZooKeeper 选举源码分析
源码分析,最关键的是要找到一个入口,对于 zk 的 leader 选举,并不是由客户端来触发,而是在启动的时候会触发一次选举。因此我们可以直接去看启动脚本 zkServer.sh 中的运行命令,ZOOMAIN 就是 QuorumPeerMain。那么我们基于这个入口来看
nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
- 解压 zookeeper-3.4.10.jar, 找到 QuorumPeerMain.java
1. QuorumPeerMain.main 方法