左手 CloudWeGo,右手 Kratos ,如何选?
最近在思考如何选一款 Go 生态的微服务框架,研究下别人如何做微服务设计及治理等。CloudWeGo 是最近字节刚发布的,而 Kratos 是 B 站比较早开源的一款。
各自优势
如果你看过字节跳动 Go RPC 框架 KiteX 性能优化实践,这篇文章就能看出字节出的框架对性能的极致追求。简单来说:
CloudWeGo 一套,重性能;
Kratos 一套,重设计规范;
联想实际
一个软件经常出的最大的问题是什么?因为项目复杂度高,代码混乱,维护成本高,牵一发动全身、bug 就想按下葫芦浮起瓢此起彼伏。救火队像打地鼠一样忙得了这边,忙不了那边。最近的感想和工作经历来说,最痛苦的莫过于工程范式做的不够,这当然和团队文化有关,也和地基有关。
曾经每当别人说“PHP 是世界上最好的语言”感到“呵呵”。转了 Go,反思当下使用的自研 Go 微服务框架,有一点忽然觉得 Laravel 真的一个优雅的 Web 框架,常用的玩法都有了最佳实践了。
反观 Go 生态,一言难尽,可能也是因为最近比较少关注其他 Go Web 框架和库。
Kratos 设计者怎么说
今天把这个话题在发在了群里,没想到过了 2 分钟,毛剑老师就在群里发言了,解开了一些疑惑。
先做好抽象,性能是最不着急的
大部分场景队性能都不敏感
否则就是内部 KPI show,在社区形成不了标准,没什么卵用
Kratos 引入就比较轻量吧
标准,二字能看到设计的理念差异。
版权声明: 本文为 InfoQ 作者【baiyutang】的原创文章。
原文链接:【http://xie.infoq.cn/article/4704c4cc47e50b8470f55a754】。文章转载请联系作者。
评论