golang etcd 报错 undefined: resolver.BuildOption 解决方案

1. 问题现象

import (

	"github.com/coreos/etcd/clientv3"
)

在使用 github.com/coreos/etcd/clientv3 时代码报以下错误:

# github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
../github.com/coreos/etcd/clientv3/balancer/resolver/endpoint/endpoint.go:114:78: undefined: resolver.BuildOption
../github.com/coreos/etcd/clientv3/balancer/resolver/endpoint/endpoint.go:182:31: undefined: resolver.ResolveNowOption
# github.com/coreos/etcd/clientv3/balancer/picker
../github.com/coreos/etcd/clientv3/balancer/picker/err.go:37:44: undefined: balancer.PickOptions
../github.com/coreos/etcd/clientv3/balancer/picker/roundrobin_balanced.go:55:54: undefined: balancer.PickOptions

查阅资料发现是 grpc 版本不兼容问题,需要降低 grpc 版本。

2. 解决方案

2.1 方案一

修改 go.mod

具体步骤请参考:

https://www.cnblogs.com/anmutu/p/etcd.html

2.2 方案二

下载 grpc 其它版本

go get -u -x google.golang.org/grpc@v1.26.0

下载完成后将 $GOPATH/pkg/mod/google.golang.org/[email protected] 文件重命名为 grpc ,并放到 $GOPATH/src/google.golang.org/grpc 目录下。

你可能感兴趣的:(#,问题记录)