拆分为了 api、client、raft、server、etcdctl、bbolt 等独立的 Go 模块 。不会像老版本一样交叉影响 。
如果你是新项目 , 建议无脑使用 etcd v3.5 以上版本 。千万别用 v3.3/v3.4 及更低的!
比较无奈的一点可能有的同学以为皆大欢喜了?其实并不 。
他的模块化改造成功仅限于 etcd v3.5 的版本 。而历史项目,如果你是使用 etcd v2 store , 那么很抱歉 。
etcd 老版本(v3.3/v3.4 等)是没有变动的,在 v3.5 的新版本(包含最新的文档)中都在开始在逐步去除 etcd v2 的相关支持 。

文章插图
图片
如果仍然在使用 etcd v2 的同学,建议进行数据迁移用 v3 。这样可以避免很多技术上的问题 。
迁移不方便的话,除了各种 replace 和锁版本外 。如果你使用的 etcd 功能非常基?。?也可以自己实现一个简易版的 SDK 。
总结
etcd 的这个历史问题已经存在了好几年,一直处理的慢慢吞吞 。甚至影响到了 Go 生态圈的一些技术选型问题 。在新版本中,etcd 的依赖问题终于解决了 。真的是,这值得被我们记?。∷淙凰?习姹疽廊幻淮??..
前几天有同学反馈 tidb 里引用了 cloud.google.com/go/pubsub 库,而该库又依赖了 grpc 的较高的版本 。从而导致原有卡在 grpc v1.26 的应用又出现了问题 。才回过头来看看 。
【Go etcd 的依赖问题终于解决了......】
推荐阅读
- SQL如何求解省市区中的递归问题?
- Istio:微服务开发的终极利器,你还在为繁琐的通信和部署流程烦恼吗?
- 揭开勒索软件LostTrust的神秘面纱
- 揭秘程序员高薪背后的真实原因!
- MongoDB与Azure Cosmos DB的对比:选择合适的文档数据库
- 掌握Python中的闭包技巧
- Go的分布式应用:使用Raft算法
- iOS 屏幕旋转的实践解析
- 基于群体智能算法的机器学习模型融合与集成优化
- 算法工程师是做什么的
