惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
AWS News Blog
AWS News Blog
阮一峰的网络日志
阮一峰的网络日志
Vercel News
Vercel News
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
Tailwind CSS Blog
PCI Perspectives
PCI Perspectives
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 叶小钗
IT之家
IT之家
V2EX - 技术
V2EX - 技术
Cloudbric
Cloudbric
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
宝玉的分享
宝玉的分享
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Schneier on Security
博客园 - 【当耐特】
G
Google Developers Blog
S
Security @ Cisco Blogs
N
Netflix TechBlog - Medium
T
Tenable Blog
C
Check Point Blog
The Cloudflare Blog
J
Java Code Geeks
The Register - Security
The Register - Security
Google Online Security Blog
Google Online Security Blog
Security Latest
Security Latest
T
Tor Project blog
T
The Blog of Author Tim Ferriss
S
Security Affairs
S
Securelist
P
Privacy & Cybersecurity Law Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Privacy International News Feed
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
About on SuperTechFans
G
GRAHAM CLULEY
Jina AI
Jina AI
Spread Privacy
Spread Privacy

文章列表 on polarisxu

通过一个例子让你彻底掌握 Go 工作区模式 这道题正确率竟然只有 22% Go 开源项目推荐:一个简单的 Go 练手项目 go test 如何禁用缓存? Go1.18 快讯:constraints 包被移除标准库 跟着 Go 作者学泛型 「2022 版」轻松搞定 Go 开发环境 鹅厂小哥用行动反对加班:程序员加班能被终结吗? Go 为什么选择 Gopher 作为吉祥物? 本地如何配置多个 GitHub/Gitee 账号? 为 Java 开发者准备的 Go 教程 02:Java 有而 Go 无 GitHub 发现了 studygolang 项目依赖的漏洞 Typora 宣布收费后,这款开源 Markdown 编辑器火了 为 Java 开发者准备的 Go 教程 01:漫游了 我的 2021 年终总结 泛型版 singleflight:Go 中如何防止缓存击穿? 2021 年你写了多少代码?这个 Go 工具帮你统计 Go1.18 新特性:TryLock Go 泛型入门教程 程序员瑞士军刀:各种结构的转换工具 终于有 Go 版的 Elasticsearch 了 Go泛型系列:maps 包讲解 Go 1.18 中的 any 是什么? Go1.18 快讯:新的 IP 包 Go编程模式:详解函数式选项模式 Go泛型系列:slices 包讲解 Nginx 竟然也有 playground — Go 语言构建的 Go泛型系列:Go1.18 类型约束那些事 Go1.18 快讯:Module 工作区模式 Go1.18 快讯:新增的 Cut 函数太方便了 Go1.18 快讯:废弃了这个 API Go1.18 快讯:新增字符串 Clone API Go:如何获得项目根目录? Go 如何获取和设置环境变量 重磅变动:更快找到微信公众号里的Go文章 Go 这样设置版本号:我们的项目也可以 假期结束,推荐 2 本 manning 出的 Go 图书 Go Fiber 框架系列教程 04:测试应用 Go Fiber 框架系列教程 03:中间件 Go泛型系列:提前掌握Go泛型的基本使用 推荐一个 Go GUI 实战项目 Go Fiber 框架系列教程 02:详解相关 API 的使用 Go Fiber 框架系列教程 01: 和 Express 对比学习 Go Module:私有不合规库怎么解决引用问题 Go1.17 新特性:go get 变了 Go1.17 新特性:testing 包的相关变化 StackOverflow 上关于 Go select 死锁的问题 新书推荐:用 Gin 框架构建分布式应用 Go 官网要变天。。。 Gin 这是要成为 Go 官方框架? 扬眉吐气:刚刚,Go 已经默认支持泛型了 Go 1.17 新特性:Module 有哪些变化? Go 第三方库推荐:类型转换如此简单 担心密码提交到 GitHub?建议使用这个 Go 开源工具 Go 的时间格式化为什么是 2006-01-02 15:04:05? GitHub 为 Go 社区带来安全支持 Go开源项目推荐:500行代码确认请求时间花在哪 一道关于 len 函数的诡异 Go 面试题解析 厉害了我的 Go:推荐系统都有开源实现 Go1.17 新特性:新版构建约束 这个工具真好:看看你的Go项目依赖有无漏洞 网友很强大,发现了Go并发下载的Bug Rust 劝退系列 09:函数 Go项目实战:一步步构建一个并发文件下载器 这本 Go 新书挺期待的:100 个常见错误 Go 启用新的官方问答社区 这是要干嘛?!微软招 Go 编译器全职开发人员 Go1.17 快报之标准库越来越注重易用性 Go1.17 新特性之切片变数组 回顾 Go 官网的演变史 站长8年前的Go代码竟然进入大厂的项目里了 Go图书翻译:一个好消息,一个坏消息 不怕烂尾!决定组织翻译这本 Go 图书 Rust 劝退系列 08:模式匹配 一本花了2.5年写成的Go免费在线图书 被黑惨了:一句话,说明自己会 Go,咋整? Go1.16 中的新函数 signal.NotifyContext 怎么用? Go 1.17 新特性提前学之测试执行随机化 Rust 劝退系列 07:流程控制 官方的 Go 多版本管理:使用和原理 Rust新书:给你一个劝退的理由 周刊题解:常量表达式这个规则应该了解下 盘点那些使用 Go 语言的国外公司 编写了50万行Go代码是一种什么体验 Rust 劝退系列 06:常量 Uber 使用 Go 的规模这么大?!都自己定制的 Go 编译器了 Go Team Leader — rsc 大神新开源了一个库,增强模板功能 再一次看到了 Go 的节制:int128 类型要不要支持? Rust 劝退系列 05:复合数据类型 「卷」有理论依据:海勒姆定律—Go又是怎么卷的 Go 真的也可以进行 GUI 开发:还有这样的图书呢 Rust 劝退系列 04:基本数据类型 我的 Go 语言书单 Rust 劝退系列 03:变量 我又来推荐免费 Go 新书了:一本用 Go 讲架构的书 注释竟然还有特殊用途?一文解惑 //go:linkname 指令 这个功能,公众号、微信群会不会被玩坏? 一道 Go 闭包题,面试官说原来自己答错了:面别人也涨知识 Rust 劝退系列 02:第一个 Rust 程序 Rust 劝退系列 01:打造开发环境
关于 Go 语言微服务框架 Micro 的一些情况说明
2020-11-09 · via 文章列表 on polarisxu

用过或了解过 Micro 这个框架的人,可能有所耳闻,大家对其抱怨比较多,典型的抱怨是升级后不兼容。比如网上有教程是基于 1.x,但新版本是 2.x,完全不一样了,而且似乎官方文档也没有及时更新,使用了它的人“痛苦不堪”。

前些天,有人问我有无其他 Go 微服务框架推荐,说 Micro 3.0.0 开始不能用了!!

我听了一惊:我只听说它不稳定,总是变来变去,兼容性不好,但没听说不能用。后来了解了下,原来 3.0 做了巨大的改变。主要有:

  • Micro 3.0 推荐叫做 M3O,微服务框架成为了云原生开发平台
  • 废弃了 Go-Micro
  • 开源 License 由 Apache 2.0 改为 Polyform Shield

说明一点,Micro 是一个公司:Micro Services, Inc。

01 Micro 3.0 叫做 M3O,一个云原生开发平台

在 11 月 05 日,官方宣布 Micro 3.0.0 发布。这不再是一个微服务框架,而是一个云原生平台。有什么不一样呢?

官方在 3.0 版本对主要工具进行了重大重构,并将其整合到可以从开发人员的角度解决构建、运行、管理和使用这整个工作流的问题。

为什么做这样的改变

Micro 最初是作为微服务开发的工具包,它结合了 api 网关,Web dashboard 和 cli 与使用 Go RPC 框架构建的服务进行交互。因为考虑到那时让所有人重新购买 PaaS 感觉就像是一场失败的战斗。因此,官方选择围绕 RPC 框架编写单一用途的工具,以为它可以使人们逐步采用它,直到他们看到对平台的需求为止。

虽然有一个简单的 Go 框架以及一些用于查询和与之交互的周围组件,但是就像任何长期存在的项目一样,随着试图解决瑞士军刀无法做到的那种平台体验,其复杂性也在增加,开发了许多独立的库。这对于用户而言,增加了认知上的负担。

在 2019 年,官方对所有这些库进行了合并,这提供了极大的帮助,但始终仍然存在一个悬而未决的问题。 micro 和 go-micro 有什么区别?一般我们将 go-micro 视为框架,将 micro 视为工具箱,但这样的划分似乎没有意义。

过去 5 年,随着容器和容器编排成为焦点,“云原生”工具激增,世界爆炸了。更具体地说,Docker 和 Kubernetes 重新定义了技术领域,并更加有意识地转向在云中构建软件。

Micro 甚至可以追溯到 2015 年,都具有前瞻性的观点。很明显,分布式系统和云原生将在未来几年内成为后端服务开发的主导模型,但是不清楚要花多长时间花折腾各种工具,例如 docker,kubernetes,grpc,istio 等。这感觉就像重新构建技术栈。Micro 希望解决整个工作流上的事情,而只是在微服务开发上。

M3O 官方认为 PaaS 3.0 不仅是在运行容器甚至是源代码,而且还囊括了整个开发人员的经验,包括用于编写云代码的模型。因此它们打造了 Micro 3.0,或叫 M3O,这是用于云原生开发的平台。

更多信息可以看 Micro 3.0.0 的发布公告

这个点上面已经做了一定说明。

官方终止对 go-micro 的支持。这个项目自 2014 年创建至今,已经拥有 14.7k+ Star。作者认为尽管它为许多人解决了一些问题,但它并没有完成它的初衷。

现在这个项目并没有直接放弃,而是转交到个人名下(Micro 公司的 CEO Asim),为了避免混淆,项目名也改了,叫 Nitro 。现在它是一个快速的分布式应用程序开发框架。

虽然 go-micro 2.0 依然可以使用,但已经不维护。更多相信信息可以查看 Nitro 项目的 FAQ。

03 Licence 改为 Polyform Shield

Polyform Shield 这个 Licence 我是第一次见 ,相信很多人也是。官方的说法是:

Micro 继续保持开源状态,但使用 Polyform Shield 进行了许可,这可以防止该软件被提取并作为服务运行。这是为了与 AWS 和其他运行开放源代码以谋取利益而不回馈的人抗衡。

这个 Licence 是为了防止 AWS 这样的云服务部署 Micro 服务,和 Micro 公司进行直接竞争,其他情况下可以免费使用。因此不存在开头网友说的不让用的情况。

值得一提的是,Nitro 项目的 Licence 也改为了 Polyform Shield。

04 总结

Micro 3.0 的出现,可能是顺应时代的产物。但从另一个角度,包括 Licence 的变更,一个靠开源项目活下去的公司不容易。M3O 是一个云原生(m3o.com)托管平台,有兴趣可以了解它的收费模式,这是开源项目公司进行商业化的一种方式。

就像 Micro 的创始人 Asim 在 Nitro 项目的 FAQ 中说的:

Go Micro 的维护,需要花费很多的时间精力,它属于 Micro Services,Inc. 公司,该公司现在专注于 Micro as a Service,并将此处的所有接口合并到该项目的服务库中。在大多数情况下,Go Micro 都没有资金支持,虽然得到过好评。因此,在坚持了 6 年后,在 3.0 版中,这个项目属于我个人(Asim),我做出了艰难的决定,要重新许可为非商业项目。对于任何商业应用程序,我正在寻找 github sponsorship ,以便我可以将这些资金用于维护和支持工作。

所以,如果你曾经喜欢 Micro 这个项目,建议你可以继续喜欢。当然也希望这次之后,版本能够更稳定。而我看了这些后,作为一个开源爱好者,我准备花时间研究研究 Micro,顺便写写笔记,希望为它的推广做一点贡献。