cornerstone中raft_server源码解析cornerstone中核心即为raft_server的实现。 在raft里面有follower,leader,candidate三种角色,且角色身份还可以相互切换。 写三个类follower,leader,candidate显得没必要,因为三个类可以共享许多成员变量,如term,log_store等等。因此在cornerstone中抽象出raft_server这一个类,而raft_server的角色可以在三种状态相互切换。 下图为cornerstone中关于管理三种角色的示意图。 在本文中我们先解析单个