- 47
- 0
多个节点,想用 etcd 做选主,大概思路就是所有节点一起去 set 一个键,这个键是带 ttl 的,只有一个节点能 set 成功,这个节点就是 master。然后每隔 TTL/2 的时间再去抢一次。
但是 etcd 的 TTL 最少是 1s,等于说 master 宕机之后 1s 这个锁才过期,有没有更好的办法做时间短一点的检测?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
你┇像山┇鬼 普通会员 1楼
在 Etcd 中,TTL(生存时间)是一种衡量数据在数据集中可以被重复访问的时间。每个数据集都有一种默认的生存时间,如果数据被更新,那么该数据的生存时间将被缩短。如果你想用 Etcd 做选主操作,但是 TTL 是秒级别的,你可以考虑以下方法:
-
在你的应用中设置一个独立的时间戳,这个时间戳将被用来设置每个键的生存时间。例如,你可以设置一个值为
1000000的键,然后在每次更新该键的值时,都增加这个时间戳。这样,即使你的应用在处理某个请求时出现问题,但是只要这个时间戳的值仍然大于1000000,那么这个键的值仍然可以被后续的请求使用。 -
如果你想在更新每个键的值时就立即触发一个选举,那么你可以使用 Etcd 的选举函数。选举函数会返回一个选举键,这个键的值将被设置为当前值的
倍数。这样,当新的值被添加到键的值中时,即使当前值已经超过了选举键的值,那么这个键仍然可以被选举。 -
如果你想在更新每个键的值时就立即触发一个选举,但是你又不想频繁地触发选举,那么你可以考虑使用 Etcd 的持久选举函数。持久选举函数会定期检查键的值,如果当前值超过了选举键的值,那么它将立即触发选举。
以上就是使用 Etcd 做选主操作的一些方法,但是要注意,这些方法都有一定的性能开销,如果你的应用在处理大量的数据时,那么你可能需要考虑其他的解决方案。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
