zoukankan      html  css  js  c++  java
  • 服务注册设置租约

    package util
    
    import (
        "context"
        "fmt"
        "go.etcd.io/etcd/clientv3"
        "time"
    )
    
    type Service struct {
        client *clientv3.Client
    }
    
    func NewService() *Service {
        config := clientv3.Config{
            Endpoints:   []string{"106.12.72.181:23791", "106.12.72.181:23792"},
            DialTimeout: 10 * time.Second,
        }
        client, _ := clientv3.New(config)
        return &Service{client: client}
    }
    
    //注册服务
    func (this *Service) RegService(id string, name string, address string) error {
        fmt.Println(22)
        kv := clientv3.NewKV(this.client)
        key_prefix := "/services/"
        ctx := context.Background()
        leaseRes, err := clientv3.NewLease(this.client).Grant(ctx, 20) //设置租约过期时间为20秒
        if err != nil{
            return err
        }
        _, err = kv.Put(context.Background(), key_prefix+id+"/"+name, address, clientv3.WithLease(leaseRes.ID)) //把服务的key绑定到租约下面
        fmt.Println(err)
        return err
    }
    
    //反注册服务
    func (this *Service) UnregService(id string) error {
        kv := clientv3.NewKV(this.client)
        key_prefix := "/services/" + id
        _, err := kv.Delete(context.Background(), key_prefix, clientv3.WithPrefix())
        fmt.Println(err)
        return err
    }
    




  • 相关阅读:
    BigPipe
    HDFS Scribe Integration 【转】
    C++ | class size
    Leetcode | Container With Most Water
    Leetcode | Sqrt(x)
    Network | sk_buff
    JVM, JRE 和JDK
    facebook面试题【转】
    ML | SVM
    ML| EM
  • 原文地址:https://www.cnblogs.com/hualou/p/12071080.html
Copyright © 2011-2022 走看看