场景: 有三master服务器,还有众多worker服务器,三个master需要一个leader,leader用来发送邮件,短信等;
在master上面使用etcd的事务抢锁机制实现,我启动三台master需要有一个loop机制,比如其中的leader 宕机了,另外的两台需要一个人抢锁成功;
问题:我这里的loop可以这样实现吗?
伪代码如下:
func lock(){
for {
1. 创建租约
2. 拿到租约ID
3. 自动续租,
4. 处理怎么续租应答
go func() {
自动续租应答
}()
5. 创建事务
6. 事务抢锁
7. 提交事务
8. 抢锁成功,watch一个目录,进行报警
}
}
这样有问题吗?
有疑问加站长微信联系(非本文作者)