使用代码连接etcd

使用clientv3.New创建客户端:
	cli, err := clientv3.New(clientv3.Config{
		Endpoints:   []string{"localhost:2379"},
		DialTimeout: 5 * time.Second,
	})

	if err != nil {
		Logger.Println("connect ETCD error, the error:", err)
		return 
	}
带证书的客户端:
	// load cert
	cert, err := tls.LoadX509KeyPair(etcdCertPath, etcdCertKeyPath)
	if err != nil {
		Logger.Println("load cert error, the error:", err)
		return nil, err
	}
	// load root ca
	caData, err := ioutil.ReadFile(etcdCaPath)
	if err != nil {
		Logger.Println("load root ca error, the error:", err)
		return nil, err
	}
	pool := x509.NewCertPool()
	pool.AppendCertsFromPEM(caData)

	tlsConfig := &tls.Config{
		Certificates: []tls.Certificate{cert},
		RootCAs:      pool,
	}

	var dataType string

	cli, err := clientv3.New(clientv3.Config{
		Endpoints:   endPoints,
		DialTimeout: time.Duration(dialTimeout) * time.Second,
		TLS:         tlsConfig,
	})

	if err != nil {
		Logger.Println("connect ETCD error, the error:", err)
		return nil, err
	}
获取key所对应的value
	resp, err := cli.Get(context.TODO(),key)
	if err != nil {
		Logger.Println("get config from ETCD error, the error:", err)
		return
	}
	dataType = string(ev.Value)
	Logger.Println("data: ",dataType)
获取前缀为xxx的所有value值
	resp, err := cli.Get(context.TODO(),key, clientv3.WithPrefix())
	if err != nil {
		Logger.Println("get config from ETCD error, the error:", err)
		return 
	}

	for _, ev := range resp.Kvs {
		dataType = string(ev.Value)
		Logger.Println("data: ",dataType)
	}
添加key/value
	resp, err := cli.Put(ctx, "key", "value")
	if err != nil {
		……
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值