首页 > 其他分享 >解决go项目引进etcd/clientv3的一个报错grpc版本过高的两个方法

解决go项目引进etcd/clientv3的一个报错grpc版本过高的两个方法

时间:2024-03-19 14:49:00浏览次数:28  
标签:clientv3 grpc balancer 报错 etcd go mod

在使用etcd 做服务注册和发现,编译时提示 下列错误:

# github.com/coreos/etcd/clientv3/balancer/picker
F:\Go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\picker\err.go:37:44: undefined: balancer.PickOptions
F:\Go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\picker\roundrobin_balanced.go:55:54: undefined: balancer.PickOptions
# github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
F:\Go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\resolver\endpoint\endpoint.go:114:78: undefined: resolver.BuildOption
F:\Go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\resolver\endpoint\endpoint.go:182:31: undefined: resolver.ResolveNowOption

原因是 google.golang.org/grpc 1.26 后的版本是不支持 clientv3 的,有两个方法可以解决这个问题,

第一种方式:
只需要把grpc改成 1.26 版本的即可,具体操作方法是在 go.mod 里加上:

具体操作方法是在 go.mod 里加上:

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

第二种方法:

如果必须在项目中使用更高版本的grpc,则只需要引用更高版本的etcd库即可,代码如下:

import (
  "go.etcd.io/etcd/client/v3"

)

即 import  时把  go.etcd.io/etcd/client/v3   替代  go.etcd.io/etcd/clientv3

然后  go.mod 中使用 go mod init 或者 go mod tidy,  我的依赖情况如下:
require (
       go.etcd.io/etcd/client/v3 v3.5.12 // indirect

       google.golang.org/grpc v1.59.0 // indirect

)

标签:clientv3,grpc,balancer,报错,etcd,go,mod
From: https://www.cnblogs.com/vtools/p/18082763

相关文章

  • mongoose
    挖坑:集合CURD,文档CURD[数据库连接]连接一个不存在的数据库,不会立即创建该数据库,只有执行到文档对象的save等方法时,才会去创建该数据库constmongoose=require('mongoose')//这里捕获的是链接过程中发生的异常constdb=mongoose.connect('mongodb://host:p......
  • Golang案例开发之gopacket监听网卡抓包(2)
    文章目录前言二、实践监听网卡抓包1.代码2.知识点OpenLive方法SetBPFFilter断言总结前言本节实战,监听指定网卡,进行网络抓包,根据分层,解析不同分层包的内容。二、实践监听网卡抓包1.代码代码如下(示例):packagemainimport( "fmt" "log" "......
  • VUE前端打包报错:TypeError: Class extends value undefined is not a constructor or
    在执行npmrunbuild的时候遇到了错误:TypeError:Classextendsvalueundefinedisnotaconstructorornull;而执行npmrunserve是可以正常执行的,报错如下:buildingforproduction...ERRORTypeError:ClassextendsvalueundefinedisnotaconstructorornullTypeErr......
  • django版本区别
     """1.django1.X路由层使用的是url方法而在django2.Xhe3.X版本中路由层使用的是path方法url()第一个参数支持正则path()第一个参数是不支持正则的写什么就匹配什么如果你习惯使用path那么也给你提供了另外一个方法fromdjango.urlsi......
  • My Interview Experience at Google --- 转
    MyInterviewExperienceatGoogle[L5Offer]看看Google都面啥原文第一轮DSA(45分钟)树,后序遍历,拓扑排序在面试过程中,面试官在代码编辑器中分享了一个很长的问题,并让我阅读。阅读完毕后,我问了几个澄清问题以更好地理解问题。一旦我清楚地理解了问题,我建议使用树作为数据......
  • 微信小程序:解决chooseImage:fail unknouwn scene报错
    我自己用的是安卓的,在某些苹果机上正常运行,但在我一个朋友的11上就报这个错: 开始以为是隐私协议的问题,我就把隐私协议打开了: 但是错误依然,我就谷歌了一下,发现,这是个微信的bug。。https://developers.weixin.qq.com/community/develop/article/doc/000840f94fc390bc8d0c......
  • ubuntu22.04部署django+uwsgi+nginx上线站点
    系统默认是3.10的python版本,不支持pip,需要先安装pip常用的命令pipinstallsomepackage-ihttps://pypi.doubanio.com/simple/#pip安装使用豆瓣源比较快sudochownubuntu:ubuntu/opt/wwwroot/mysite-R#可更改文件夹对应的用户,避免总是提示无权限被禁止项目默认部署在/o......
  • mongoDB
    [管理员]创建管理员admin数据库中的是超级管理员,其他库中的是一般管理员超级管理员可以创建其他管理员在哪个数据库创建的管理员,只能在哪个数据库中进行登录在非admin中创建的用户,只能赋予其所在数据库的相关权限>useadmin//创建用户(用户名密码权限列......
  • mongo page query based on conditions
    一、MongoTemplate中Aggregation应用使用Aggregation聚合查询支持返回固定字段支持分组计算(count)总数、(sum)求和、(avg)平均值、(max)最大值、(min)最小值等publicPage<Student>getListWithAggregation(StudentVOstudentVO){Sortsort=Sort.by(Sort.Directi......
  • Django-域名管理项目
    1,相关版本vscoe:1.82.12,cmd命令行创建并激活虚拟机环境创建虚拟环境python.exe-mvenvdjango-env激活并进入虚拟环境django-env/Script/active3,vscode终端创建并激活虚拟环境执行激活命令active报错时的处理办法https://blog.csdn.net/weixin_44548098/ar......