Go etcd 的依赖问题终于解决了......( 二 )


拆分为了 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 的相关支持 。

Go etcd 的依赖问题终于解决了......

文章插图
图片
如果仍然在使用 etcd v2 的同学,建议进行数据迁移用 v3 。这样可以避免很多技术上的问题 。
迁移不方便的话,除了各种 replace 和锁版本外 。如果你使用的 etcd 功能非常基?。?也可以自己实现一个简易版的 SDK 。
总结
etcd 的这个历史问题已经存在了好几年,一直处理的慢慢吞吞 。甚至影响到了 Go 生态圈的一些技术选型问题 。
前几天有同学反馈 tidb 里引用了 cloud.google.com/go/pubsub 库,而该库又依赖了 grpc 的较高的版本 。从而导致原有卡在 grpc v1.26 的应用又出现了问题 。才回过头来看看 。
在新版本中,etcd 的依赖问题终于解决了 。真的是,这值得被我们记?。∷淙凰?习姹疽廊幻淮??..

【Go etcd 的依赖问题终于解决了......】


推荐阅读