再见go-micro!企业项目迁移go-zero全攻略(一)


本文摘自网络,作者,侵删。

作者:Mikael

最近发现 golang 社区里出了一个新兴的微服务框架。看了一下官方提供的工具真的很好用,只需要定义好 .api 文件模版代码都可以一键生成,只需要关心业务;同时 core 中的工具极大减少了开发成本。

废话不多说,来看看这个微服务框架:go-zero

起源

聊聊与go-zero结缘

最先接触go-zero是2020年10月国庆假期,说来也巧,看到有人在go-micro群中问go-zero情况,当时go-zero作者在群中就大概回答了一下,引起了我的好奇,当时公司用的go-micro1.x,因为go-micro版本真的太混乱了,2还没多少人用明白,现在又搞了个3,而且这几个大版本之间高度不兼容,简直一团糟。我抱着好奇心去github.com查看了go-zero,当时并没有因为它的star数、文档少而放弃,哈哈,抱着试玩的心态去go get它,从此发现了新大陆,并加入了go-zero群,开始了go-zero之旅。

选择它的几点原因

  • 微服务:在现在这个大环境下,单体服务诟病已经越来越多了,项目大起来之后 “牵一发而动全身” 的教训比比皆是,维护越来越困难,测试测起来也是很头疼,构建速度慢等等,在这样趋势下拥抱微服务成为了大趋势,go-zero就是一个微服务框架并且能为我解决很多实际项目中遇到的痛点、难点
  • 稳定性:内外同源。稳定性是我很看重的,他们公司内外同源势必保证了此框架的稳定性。
  • 高并发:经历了2020年疫情期间,“晓黑板” 轻松获得支撑千万日活服务
  • 工作效率:说到工作效率,必须要提的就是goctl,goctl配合go-zero所有代码基本都是可以通过这个工具生成,只需要关心自己的业务逻辑即可,包括一键生成dockerfile,k8s的yaml文件,简直不要太爽,大大提高了工作效率
  • 代码质量:大概看了一些go-zero的源码,代码质量上感觉还是没得喷的,至少感觉比我自己写的好很多,哈哈,这个每个人看法不同,大家可以去亲自看一下。
  • 团队:当时加了go-zero作者微信,感觉他为人很谦和,无论问一些比较基础的东西还是一些线上实战经验,也总是会耐心给我解答、意见,在使用期间我也提了一些bug,go-zero团队都能及时的解决,迭代速度真的让我惊艳。大家应该都知道,在国内做开源有多么不容易。
  • 对比go其他微服务框架:go的微服务框架大概我玩过go-micro、go-kit、kratos、rpcx、go-zero。
    • go-micro我开始就说了是版本真心有点混乱
    • go-kit也不错但是资料相对来说较少
    • kratos经过b站源码泄漏大家应该都知道它了,前一段时间都断更了,差点安乐死,毛神在issue中说太忙了,不过他们在出2.0版本了,还是很期待
    • rpcx 玩了一下玩的不多,但是他们宣传是“好未来”也在用,go-zero就是“好未来”的呀,哈哈
    • go-zero 上面我都说过了,就不再提了。

设计架构

在介绍go-zero实际使用前,先说一下整体架构,更方便理解

go-zero-k8s架构

CI/CD

Step1:本地deveploer开发好代码之后提交到gitlab(这里分支就不详细说明了)

Step2:jenkins,使用pipline方式部署

  • 从gitlab拉取代码
  • docker build ,基于最新gitlab上的code构建镜像
  • docker push,将构建好的镜像推送到镜像仓库(当然一般都是有自己私有镜像仓库比如harbor,用阿里云的也可以)
  • kubectl apply -f xxx.yaml :使用kubectl 部署到k8s中 (阿里云k8s容器服务那么好用,不用岂不可惜?)

kubectl部署之后,k8s就会根据你的service中的yaml定义的镜像来你的镜像仓库拉取刚才你打包的最新镜像,so~~上线成功啦!

阅读剩余部分

相关阅读 >>

Golang中main中panic和后续panic处理,以及新开协程的影响

手撸Golang Go与微服务 chatserver之4 内存泄漏

聊聊dubbo-Go-proxy的timeoutfilter

Golang 可以把包名去掉吗?

iota在Go中怎么使用

一个微服务 demo 将我三年 Go web 开发经验传授给你

Golang变量、常量

手撸Golang 仿spring ioc/aop 之6 扫码1

leetcode 搜索旋转排序数组 Golang

devops ci/cd 分析(四)之编写k8s yaml模版

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...