

golang 快速开发,应该选择 go-zero,还是 Iris?
source link: https://www.v2ex.com/t/917798
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

以前项目都是基于 java 的,本着节约服务器资源(省钱)的思想,新项目想用 golang 开发,这两个框架选择哪个比较好?
考虑点主要有:
- 技术栈全面,主要是 web api
大家给推荐一下,说一下理由?
![]() |
plutome 18 小时 8 分钟前 选 gin
不建议 go-zero |
![]() |
Nazz 18 小时 5 分钟前 标准库够用了, 没必要上 fasthttp
|
coderxy 18 小时 3 分钟前 你原来用 java 的时候是只用了 spring boot 还是 spring cloud 全家桶都上了?
iris 不推荐, gin 对标 spring boot 这种,属于基本的 web 框架 go-zero 对标的是 sc ,属于微服务框架。 如果想简单做几个接口,就 gin 吧。 |
![]() |
echo1937 18 小时 1 分钟前 via iPhone 选择 gjn
|
![]() |
king888 17 小时 58 分钟前 via iPhone 都没什么太大差别,那个顺手用那个
|
DefoliationM 17 小时 56 分钟前 net/http
|
![]() |
daiv 17 小时 54 分钟前 我用 goframe
|
![]() |
charmToby 17 小时 54 分钟前 go-zero 结合 iris 我公司就这样做的。
|
![]() |
to2false 17 小时 54 分钟前 gin
纯 api 的话非 rpc ,go-zero 不好用 |
![]() |
fiypig 17 小时 52 分钟前 gin 然后需要什么搭什么,后面加入 RPC 也方便的
|
xgxtt 17 小时 46 分钟前 gin 上手快一点
|
![]() |
licoycn 17 小时 46 分钟前 gin+自己搭配即可
|
![]() |
feikeq 17 小时 28 分钟前 我觉得 iris 更灵活
|
![]() |
rickiey 17 小时 25 分钟前 gin / echo
|
![]() |
wunonglin 17 小时 21 分钟前 路由里最难用就是 gin 了。echo 是最推荐的
|
richangfan 17 小时 14 分钟前 最快的是用 http 标准库,不依赖第三方
|
josephxrays 17 小时 7 分钟前 可以试试 b 站的 kratos ...
|
![]() |
qq976739120 17 小时 5 分钟前 建议 gin+gorm , 不过..真的有必要节约服务器资源吗? 考虑到这一步的大项目还是要好好规划调研下.
|
![]() |
NCE 16 小时 55 分钟前 @qq976739120 创业公司,锱铢必较
|
![]() |
zpfhbyx 16 小时 41 分钟前 试试 fiber?
|
securityCoding 16 小时 33 分钟前 一直在等鹅厂内部的 trpc 开源,一个 pb 文件直接出 rpc 和 http ,还挺好用
|
tbwisk 16 小时 29 分钟前 自己用 gin 组装一下自己用到的,后续直接套用这个模板 然后填充业务代码..
|
![]() |
keppelfei 16 小时 8 分钟前 节约服务器资源就要换语言吗?这账可能越算越糊涂。
|
![]() |
huihuiHK 15 小时 56 分钟前 gin 好找工作,哈哈
|
![]() |
Nazz 15 小时 55 分钟前 @NCE go-zero 对标的是 kratos 这种微服务解决方案. iris 没用过只知道是基于 fasthttp 的, 比 gin 重一点但功能远不如 go-zero 那么丰富. 看你自己的需求, 没用到 gRPC 的话 gin 够用了.
|
iwdmb 15 小时 53 分钟前 |
showshowcode 15 小时 21 分钟前 是不是都没用过 fx
|
![]() |
hahasong 15 小时 14 分钟前 gin 最好用
|
![]() |
liuxu 15 小时 11 分钟前 go 省资源看 benchmark 对比,主要选择基于 fasthttp 整合的框架,实测不管是 qps 还是硬件资源消耗,和 axum 这类性能极高的 rust 框架差距不远,从文档和 example 齐全的角度来看,我用了 fiber
https://github.com/smallnest/go-web-framework-benchmark 这是我基于 fiber 写的项目: https://github.com/liuquanhao/moyu |
son012 15 小时 10 分钟前 beego 没人推荐么?我最近学习 golang 就是用这个去做的一个公司功能小模块
|
![]() |
zoharSoul 15 小时 8 分钟前 go-zero
|
ixixi 15 小时 6 分钟前 长期活跃+稳定的 api 很重要; 我投 gin
|
xsen 15 小时 3 分钟前 go-zero
|
![]() |
liuhan907 14 小时 45 分钟前 创业公司,而且还是用过 Java 那一套的,还是纯 WebAPI 的业务,你就用 .NET 那也比 Go 来的更方便啊。。。
|
![]() |
jinzhe 14 小时 23 分钟前 gofiber 路过
|
![]() |
Rainshaw 14 小时 18 分钟前 via iPhone 可以看看 hertz 和 kitex ,我最近在研究中,看文档感觉还可以
|
patrickyoung 13 小时 59 分钟前 via iPhone Gin 和 echo
|
![]() |
czyt 13 小时 53 分钟前 kratos
|
![]() |
chendy 13 小时 49 分钟前 java 农路过,表示服务器资源一般没有人力资源贵…
|
![]() |
RedisMasterNode 13 小时 2 分钟前 重新看了一眼楼主需求:
本着节约服务器资源(省钱)的思想 觉得这个不应该换 golang... |
caotian 12 小时 43 分钟前 个人的一点经历,仅供参考。
身在小公司, 做过不少创业项目, 几年前 php, springboot, .net core 都做过, 并且目前还在维护着, 但近两年的新项目后端全部使用 gin 了。 选择 gin 主要是以下几个因素, 跟其它几个语言 /框架比起来: 一、php 写的早, 当时还是 php5 写的项目, 维护起来有点痛苦, 特别是经历过几拨人接手过的项目, 数组里面到底有什么太费脑子了。 二、springboot 太消耗资源了, webapi 项目基本上>1G 的内存消耗, 有个项目上了 cloud 微服务, 十来个服务,4 核 16G 的阿里云刚好能跑一套部署。我的项目主要是企业用户,CRM, 进销存等, 访问压力并不大,但是客户用起来,很多会要求有定制内容,定制多点了,就需要单独开发独立部署,成本比较高,如果成本转嫁给客户,客户会觉得软件比较贵,一年多 5000 块钱服务器费用,很多客户会犹豫。而现在容器化部署 go 为主的项目, 一套软件部署 3 个容器, 2 个 nginx:alpine, 1 个 gin, 镜像都只有一二十兆, 内存消耗 3 个容器加起来不到 100 兆, 多台服务器共享负载均衡带宽, 共享 RDS 数据库, 独立部署的成本可以压缩的非常低。 三、.net core 我是从 asp 时代就入行做网站, 后来 asp.net 1.1, 2.0 都用过做过很多中小型网站, 后来几年没接触.net, 但是对.net 还是有情怀的, .net core 发布后, 拾起来做了几个小项目, 并没有特别惊艳的地方, 坦白说 spring 那一套内容需要用到的都学会就已经消耗了大量的精力, .net core 一样有太多需要学习的东西, 年龄大了并不想投入太多时间在这种学习上了, 最终还是选择了 go 。选择 go 的原因就是部署成本低, 语言简陋一点并不是大问题, 说 go 不能写业务的就更不知道为什么了, 有什么样复杂的业务 go 不能写的? asp 都开心地写过几年, go 比 asp 强多了, 而且忘掉架构, 忘掉设计模式, 用脚本一样的写法写 webapi, 做个快快乐乐的 curd boy, 早点下班带孩子, 不是很开心滴么。 题外话,由于项目需要,有些服务需要开发各种能运行在不同终端上的程序, 比如 windows 上的读卡、串口服务, 甚至运行在路由器上的采集程序, 通过 wifi, 蓝牙做数据采集, 这些以前都是.net 开发的, 但是部署起来并不快乐, 很多客户或者设备自带的 windows7 非常老, 甚至没有接入互联网, 部署一个应用会缺少各种各样的依赖, 有的要安装 vc++运行库, 有的要安装系统更新, 每次都提心掉胆地安装, 就怕这几十万的设备带的电脑系统要是挂了, 客户找厂家上门可是要大价钱的,关键还经常报错安装不上依赖。但是自从把这些采集程序换成 go 开发成 windows 服务, 兼容性出奇的好, 从来没需要单独安装什么依赖, 各种架构的 arm, misp 路由器上跑 go 开发的程序资源消耗也非常小, 体验非常好。 |
![]() |
hopingtop 12 小时 16 分钟前 如果你还在问选择框架的问题,那么我建议你选择 Gin
理由如下几点: 1.你可能写 Go 语言时间还不长,过于复杂的框架会导致你的学习 /解决问题成本上升,Go 也并不是大家说的那么简单。 2.Gin 的生态比较丰富,虽然我们常用的就是用他的 route ,但是他还有一个 gin-plugin 的一个仓库,里面有比较多的开源中间件,可以使用。 3.Gin 这东西本质上比较简单,而且经过大量项目验证,坑极少,觉得不好用的呢,大多数只是不习惯于罢了,因为可能会被其他框架的写法影响。 4.对于 WebAPI 来说,成本最低,不会依赖于任何东西,对于你以后想转 RPC ,这个其实更多的是考量你代码的组织。我们很多时候,一个 server 方法,是既提供 RPC 调用也提供 HTTP 调用,就是 Handler 转换一下。 5.对于一个东西依赖越少,未来越好做改变,Gin 大概率你也只会用到他的,route 、validator 、middleware 、context ,这些东西大多数都是在你业务逻辑之外的,如果哪天 Gin 不爽了,你大可以换成其他的。 关于选语言,如果你提出 Go 了,就选择它吧,对于创业公司来说,性能和成本真的是很友好,唯一缺点就是有些城市不太好招人。 |
![]() |
Desdemor 11 小时 27 分钟前 gin 简单,
goframe 轮子组件多 |
dayeye2006199 10 小时 55 分钟前 via Android 推荐 echo ,简单,常用的功能开箱使用
|
sunshengkai27 10 小时 38 分钟前 @zpfhbyx #28 使用 fiber 极大概率会触发 evictCount panic, 最近生产环境遇到了后改成 gin 就正常. 推测是 fasthttp 的问题. https://github.com/golang/go/issues/43048#event-4080325045
|
![]() |
jinsongzhao 9 小时 18 分钟前 @chendy 虽然服务器资源比人便宜,但是重构能力是瓶颈,面对一堆 java 写的屎山,首先得有个能让它脱胎换骨的人,新手可以利用语言优势,缩短于高手的差距。
|
![]() |
guanhui07 8 小时 1 分钟前 建议 gin
|
![]() |
daiv 7 小时 25 分钟前 我想要一个 纯 API 的, 会自动带 swagger ...
|
fxjson 6 小时 55 分钟前 via Android go zero 跟牛掰
|
![]() |
NCE 6 小时 49 分钟前 |
![]() |
NCE 6 小时 43 分钟前 @caotian 感谢! 我也是从 asp 开始一路走来的,路径一样。springboot 的内存问题我也是现在开始在乎,成本高了报价又不能高,一个 webjar 用 1g 已经很保守了。.net 从换负责人以后我就带团队全部转 java 了。后来 core 没再接触。现在就考虑 php 的性价比,看看 go 是不是可以,像你说的,可以服务器端资源节省下来。
dotnet 的串口开发是个伪需求,还是需要 com+去调用,我之前甚至看过 net 的嵌入式开发,比较虚。 你说的 3 个容器,2 个 nginx:alpine 是部署前端站点当 cdn 吗?为什么部署 2 个呢? |
![]() |
NCE 6 小时 42 分钟前 |
![]() |
lesismal 5 小时 32 分钟前 前端请求 api/rpc ,后端之间 rpc 都一套就能搞定搞定,自带了简单的 pub/sub 扩展,也方便
|
![]() |
realpg 4 小时 40 分钟前 |
![]() |
realpg 4 小时 38 分钟前 @caotian
`选择 go 的原因就是部署成本低, 语言简陋一点并不是大问题, 说 go 不能写业务的就更不知道为什么了, 有什么样复杂的业务 go 不能写的? asp 都开心地写过几年, go 比 asp 强多了, 而且忘掉架构, 忘掉设计模式, 用脚本一样的写法写 webapi, 做个快快乐乐的 curd boy, 早点下班带孩子, 不是很开心滴么。` 说的太对了 然后发现,忘掉架构, 忘掉设计模式,不带脑子的去写 golang crud ,性能起飞,服务器内存还 95%空闲 |
hundandadi 3 小时 57 分钟前 via Android @chendy 公司降本增效的时候,就是用人力来节约服务器资源
|
![]() |
someonedeng 3 小时 29 分钟前 gin / fiber
轻装上阵 大多数场景都够用了 |
isma123 3 小时 4 分钟前 如果没有 rpc 需求,不建议用 go-zero
lris 没接触过 平时用 gin 比较多,gin 是真的好用 |
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK