Go语言中文网 为您找到相关结果 3

golang 操作etcd租约以及监听kv变化

定义错误常量: const ( NewLeaseErr = 101 LeasTtlErr = 102 KeepAliveErr = 103 PutErr = 104 GetErr = 105 RevokeErr = 106 ) 创建client: var conf = clientv3.Config{ Endpoints: []string{"172.16.196.129:2380", "192.168.50.250:2380"}, DialTimeout: 5 * time.Second, } client, err := clientv3.New(conf) defer client.Close() if err != nil { fmt.Printf("创建client失败:\n", ...阅读全文

博文 2018-11-18 03:34:40 我的饭卡呢

etcd租约及监听key

etcd中kv存储已经租约和监听的基本使.都说源码之下了无秘密,就不打字了. ``` package main import ( "context" "log" "time" "go.etcd.io/etcd/clientv3" ) func main() { var conf = clientv3.Config{ Endpoints: []string{"127.0.0.1:2380"}, DialTimeout: 5 * time.Second, } //创建clinetv3 client, err := clientv3.New(conf) defer client.Close() if err != nil { log.Fatal(err.Error()) } //创建租约 leas...阅读全文

博文 2019-11-05 13:21:23 bytemode

ETCD探索-Lease

ETCD探索-Lease 梗概 租约,是ETCD的重要特性,用于实现key定时删除功能。与Redis的定时删除功能基本一致。 猜想 我们通常是这么使用Lease的,首先申请一个租约:lease,然后将这个租约赋给一对KeyValue。ETCD-Lease的实现不难,在讨论怎么实现之前,可以先猜测下。我的直观想法: func putWithLease(key string, value string, ttl int) { go func() { time.Sleep(ttl * time.Second) delete(key) }() put(key, value) } 简单说明,当put一对kv时,开启一个协程用于计时。当过了ttl后,将该key删除。 这么做可以实现key的定时删除功能,...阅读全文

博文 2020-02-19 17:32:47 HammerMax