基本概念
领导者
8K5QZd.png
At any given time server is in the one of three states:
- Followers only respond to requests from other servers.
- Candidates is used to elect a new leader.
- Leaders handle all requests (if a client contact a follower, the follower redirects it to the leader) until they fail.
任期
8K5use.png
时间被分割成一个个任期。每个任期都以选举开始,一个或多个候选人尝试称为领导者。如果一个候选人赢得选举,它就会称为领导者。领导者负责管理集群,直到任期结束。有时候选举可能失败,这种情况下没有领导者。不同服务器在不同的时间观察到任期的转换。
每台服务器都保存了一个当前任期编号。它会随着时间单调递增。当服务器之间互相通信时,会交换当前任期:
- 如果一台服务器的任期小于别的服务器,那么它会更新它的当前任期到更大的值。如果一个候选人或领导者发现自己的任期已经过期了,它会立刻恢复到跟随者状态。
- 如果一台服务器的任期大于别的服务器,它会拒绝别的服务器的请求。
网络模型
非拜占庭网络模型(待续)