Micro 上次作妖的时候,我专门了解过,但是时间有点久有点忘了,这里把我记得的整理一下做个记录。
Micro 是个非常又名的微服务框架,是 Golang 微服务中最知名的项目。
其实 Micro 项目有两个:micro/go-micro 和 micro/micro
,前者微服务框架,处理微服务的基础功能,比如服务管理、服务间通信,后者是基于前者的一套方案,包括 Dashboard、API 网关等一些基础设施,还有一些命令行工具。
-
后来,宣布 micro 3.0 要改成云原生框架,和他们公司(Micro Services, Inc)的云平台 M3O 深度绑定,然后 go-micro 项目不再继续维护(现在他们的官网上还有部分资料将原来的项目称之为 deprecated go-micro)。
PS:官方在介绍 micro 3.0 的时候说 go-micro 是个失败的项目,没有达成他们最初的目标——简化开发者构建分布式系统的难度,反倒使自己成为一种过于复杂的技术,然后有必要重头来过。
PS:micro v3 已经彻底删除了对 go-micro 的依赖。或者说 go-micro 已经经过重构,然后完全并入了 micro v3。 -
再后来,又看到说是 go-micro 转成 CEO 的私人项目 asim/go-micro。
-
再后来,又看到新闻说为了和官方新版 micro (3.0) 搞混淆,弄了一个新的 Nitro 项目 (https://go-nitro.dev)。GitHub 打开 go-micro 会跳转到 Nitro 仓库 (先是 asim/nitro,后来是 gonitro/nitro)。
-
再后来,micro 授权协议由 Apache 2.0 改成非商业的 Polyform Shield,那个 Nitro 项目授权协议也做相同的调整。
-
再后来,又不再提 Nitro 了,GitHub 打开 nitro 又反过来跳到 asim/go-micro (而且仓库中关于 Nitro 相关记录好像完全被抹去了一样,修改协议的 commit 都找不到)。
go-micro 和 micro 是非常容易混淆的,每次都要根据上下文来判断说的是哪个,所以对于更名我是非常理解的。不过,在已经更名一段时间之后,micro 已经彻底和 go-micro 划清界限(清理了相关依赖)之后,又改回来,我就不知道是怎么想的了。 -
再后来,micro 和 go-micro 的授权协议不知道为啥,又改回了 Apache 2.0。
-
再后来,micro/go-micro 又重新可以访问了,和 asim/go-micro 保持一致。
都已经把 go-micro 从 micro 中彻底抹掉了,又加回来这个仓库是为啥?
这就是现状:
micro 和 go-micro 是完全没有任何关系相关的两个项目,micro 已经发展到了 3.7 版,go-micro 已经到了 4.4 版。按理来说,go-micro 应该出于不积极维护的状态,但是我看 GitHub 上的更新频率好像比我想象中的要高一些。
我真的非常想弄清楚他们公司对这两个项目的定位。
Name | Time | Website | GitHub |
---|---|---|---|
go-micro | 2015 | https://go-micro.dev/ | go-micro/go-micro |
go-kit | 2015 | https://gokit.io/ | go-kit/kit |
go-zero | 2020 | https://go-zero.dev | zeromicro/go-zero |
go-kratos | 2019 | https://go-kratos.dev/ | go-kratos/kratos |
dubbo-go | 2019 | https://dubbo.apache.org/ | apache/dubbo-go |
tars-go | 2018 | https://doc.tarsyun.com/ | TarsCloud/TarsGo |
jupiter | 2020 | https://jupiter.douyu.com/ | douyu/jupiter |