#lease #etcd #id #client #seconds #consensus #hot

failover

基于 etcd 的故障转移

3 个版本

0.1.2 2023 年 3 月 8 日
0.1.1 2023 年 3 月 8 日
0.1.0 2022 年 11 月 24 日

#8 in #hot

每月下载 21 次

自定义许可证

25KB
567

故障转移

基于 etcd 的 [热备用] 协议

算法

租约部分

  1. 客户端请求 etcd 获取 N 秒的初始租约,并收到租约 ID。
  2. 租约每 N/2 秒续订一次。
  3. 如果连接丢失,则客户端使用相同的租约 ID 续订租约。

注意:租约 ID 被重用的概率是 ½64

选举部分

  1. 客户端以随机超时开始竞选。如果选举超时,则会有另一个领导者。客户端请求 etcd 的领导者租约 ID,并等待其死亡。
  2. 客户端每秒租约生命周期对 etcd 进行轮询。如果 etcd 返回 -1,则领导者死亡,跳转至 1。

依赖项

~14–27MB
~478K SLoC