golang使用etcd版本问题

devtools/2024/11/15 16:54:41/

报错:如下与新版本的grpc包冲突,当前引入的etcd版本为旧版本。

go: common/modules/etcd importsgo.etcd.io/etcd/clientv3 tested bygo.etcd.io/etcd/clientv3.test importsgithub.com/coreos/etcd/auth importsgithub.com/coreos/etcd/mvcc/backend importsgithub.com/coreos/bbolt: github.com/coreos/bbolt@v1.3.6: parsing go.mod:module declares its path as: go.etcd.io/bboltbut was required as: github.com/coreos/bbolt

网上解决方式:

go mod initgo mod edit -replace github.com/coreos/bbolt@v1.3.4=go.etcd.io/bbolt@v1.3.4go mod edit -replace google.golang.org/grpc@v1.29.1=google.golang.org/grpc@v1.26.0go mod tidy

 最后,经过通过升级Etcd依赖版本解决,正确方法如下:最后,经过通过升级Etcd依赖版本解决,正确方法如下:

# 替换之前
import("go.etcd.io/etcd/clientv3"
)
# 替换之后
import("go.etcd.io/etcd/client/v3"
)

最后执行 go mod tidy

除此之外包冲突可能使用到的有 :

	clientv3 "go.etcd.io/etcd/client/v3""github.com/coreos/etcd/mvcc/mvccpb"//引入go.etcd.io/etcd/clientv3 时对应 "go.etcd.io/etcd/mvcc/mvccpb"//引入"go.etcd.io/etcd/client/v3" 时对应 "github.com/coreos/etcd/mvcc/mvccpb"
)

但还是有问题,最终上面的那两个mvccpb都是旧版本指向同一一个版本,解决

只需要导入"go.etcd.io/etcd/api/v3/mvccpb"即可,它不会额外添加包,直接导入不用更新mod

// go.etcd.io/etcd/clientv3导包为v3.3.27 已经过时最终不更新版本

// go.etcd.io/etcd/client/v3导包 v.3.5.17 新版本

// github.com/coreos/etcd v3.3.27+incompatible // indirect


http://www.ppmy.cn/devtools/134213.html

相关文章

在 Windows 11 中使用 MuMu 模拟器 12 国际版配置代理

**以下是优化后的教学内容,使用 Markdown 格式,便于粘贴到 CSDN 或其他支持 Markdown 格式的编辑器中: 在 Windows 11 中使用 MuMu 模拟器 12 国际版配置代理 MuMu 模拟器内有网络设置功能,可以直接在模拟器中配置代理。但如果你不确定如何操作,可以通过在 Windows 端设…

贪心算法理论

一、贪心算法的理论基础 1. 基本概念 贪心算法是一种在每一步选择中都采取当前状态下的最优决策的算法策略。它并不考虑整体的最优解是如何构成的,而是基于一种局部最优的选择原则,期望通过一系列局部最优的决策最终累积得到全局最优解。 2. 适用条件…

【Cesium】自定义材质,添加带有方向的滚动路线

【Cesium】自定义材质,添加带有方向的滚动路线 🍖 前言🎶一、实现过程✨二、代码展示🏀三、运行结果🏆四、知识点提示 🍖 前言 【Cesium】自定义材质,添加带有方向的滚动路线 🎶一、…

LeetCode题练习与总结:随机数索引--398

一、题目描述 给你一个可能含有 重复元素 的整数数组 nums ,请你随机输出给定的目标数字 target 的索引。你可以假设给定的数字一定存在于数组中。 实现 Solution 类: Solution(int[] nums) 用数组 nums 初始化对象。int pick(int target) 从 nums 中…

git同步fork和原始仓库

git同步fork和原始仓库 在使用Fork的情况下,保持你的Fork与原始仓库(上游仓库)同步是一项重要的维护任务,特别是当你想要持续贡献或保持你Fork中的项目更新时。以下是详细的步骤,指导你如何将Fork与上游仓库同步&…

websocket初始化

websocket初始化 前言 上一集我们HTTP的ping操作就可以跑通了,那么我们还有一个协议---websocket,我们在这一集就要去完成我们websocket的初始化。 分析 我们在初始化websocket的之前,我们考虑一下,我们什么时候就要初始化我们…

【NOIP提高组】潜伏者

【NOIP提高组】潜伏者 💐The Begin💐点点关注,收藏不迷路💐 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。 历尽艰险后,潜伏于 S 国的R 国间谍小C 终于摸清了S 国…

Spring Boot框架:计算机课程管理的工程认证之桥

3系统分析 3.1可行性分析 通过对本基于工程教育认证的计算机课程管理平台实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于工程教育认证的计算机课程管理平…