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 的 [热备用] 协议
算法
租约部分
- 客户端请求 etcd 获取 N 秒的初始租约,并收到租约 ID。
- 租约每 N/2 秒续订一次。
- 如果连接丢失,则客户端使用相同的租约 ID 续订租约。
注意:租约 ID 被重用的概率是 ½64。
选举部分
- 客户端以随机超时开始竞选。如果选举超时,则会有另一个领导者。客户端请求 etcd 的领导者租约 ID,并等待其死亡。
- 客户端每秒租约生命周期对 etcd 进行轮询。如果 etcd 返回 -1,则领导者死亡,跳转至 1。
依赖项
~14–27MB
~478K SLoC