我是靠谱客的博主 迅速书包,这篇文章主要介绍etcd/clientv3 循环引用问题,现在分享给大家,希望可以做个参考。

一.问题描述

使用 etcd/clientv3 ,import  不成功,报循环引用

"github.com/coreos/etcd/clientv3"

"google.golang.org/grpc/grpclog"

二.问题解决

用下面的go.mod 

 

module tttt

go 1.14

replace github.com/coreos/go-systemd => github.com/coreos/go-systemd/v22 v22.0.0

replace google.golang.org/grpc => google.golang.org/grpc v1.26.0

require (
   github.com/coreos/etcd v3.3.25+incompatible // indirect
   github.com/coreos/go-semver v0.3.0 // indirect
   github.com/coreos/go-systemd v0.0.0-00010101000000-000000000000 // indirect
   github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect
   github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473 // indirect
   github.com/gogo/protobuf v1.3.2 // indirect
   github.com/google/uuid v1.2.0 // indirect
   go.etcd.io/etcd v3.3.25+incompatible // indirect
   go.uber.org/zap v1.16.0 // indirect
)

三.测试

package main

import (
   "context"
   "log"
   "os"
   "time"

   "github.com/coreos/etcd/clientv3"
   "google.golang.org/grpc/grpclog"
)

var (
   dialTimeout = 5 * time.Second

   endpoints = []string{"localhost:2379", "localhost:22379", "localhost:32379"}
)

func main() {
   clientv3.SetLogger(grpclog.NewLoggerV2(os.Stderr, os.Stderr, os.Stderr))

   cli, err := clientv3.New(clientv3.Config{
      Endpoints:   endpoints,
      DialTimeout: dialTimeout,
   })
   if err != nil {
      log.Fatal(err)
   }
   defer cli.Close() // make sure to close the client

   _, err = cli.Put(context.TODO(), "fooTest", "bar")
   if err != nil {
      log.Fatal(err)
   }
}

 

最后

以上就是迅速书包最近收集整理的关于etcd/clientv3 循环引用问题的全部内容,更多相关etcd/clientv3内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部