我试图了解 etcd 选举 api 提供的各种功能以及它们在语义上的含义。
在他们的官方文档中非常简要地提到了每个函数的作用,并且没有提供示例。例如我们有方法:
func (e *Election) Campaign(ctx context.Context, val string) error
根据我的理解,活动用于在选举中注册节点以担任领导,并且在实现这一目标或发生某些错误之前会被阻止。
func ResumeElection(s *Session, pfx string, leaderKey string, leaderRev int64) *Election
这个我不确定为什么我们需要恢复选举,假设节点已经是领导者。也许我缺乏理解是由于这里使用的语义。
既然我们必须使用一个通用的选举标识符,为什么单次选举就不够了?
最后,我的用例是运行多个节点,只允许领导者进行一些计算/更新,在什么情况下,如果单次选举不够,我必须创建新的选举。