知识点:

这里更新term的方法很巧妙,append-entry或者install-snapshot都是用于leader与follower数据间的同步。在election结束后,follower其实是不知道election是否已经结束。为了更新自己的term,follower不采用轮询election是否结束这样占用时间且低效的方式更新term,而是采用事件驱动模型,收到append-entry或install-snapshot的rpc请求后顺带更新term,高效快捷。而对于vote_request也更新自己的term则是考虑到了在网络分区的情况下某些节点可能一直处于candidate状态,在某个时间点网络又正常了,这时候通过vote_request便可以更新term到最新状态。(对于append-entry或者install-snapshot也可以帮助网络分区的节点在网络恢复后更新自己的term。)