由于 golang 提供了完善的net/http标准库,基于该标准库实现一个web框架的难度相比其他语言低了不少,所以go web框架简直就是百花齐放.从老牌的revel和 beego ,到新出的 gin ,和 iris 等,而且还有一些类似于 chi 这种router.个人一般小项目,尤其是中间件需要暴露一些http接口的,基本就使用chi即可.
本次测试主要是gin iris echo 这三个框架.侧重在于高性能,从并发和json序列化和反序列化两个方面来测评,毕竟后台项目侧重的也就是这两个方面.
为了选择符合重IO的框架,现设定如下场景的demo,demo的具体要求如下:
gin:
iris:
echo:
综合以上各个测试结果可以看出,gin以及iris都是非常优秀的框架,gin的优势比其他稍微大点,iris次之,而echo相应差一点.
另外欢迎大家试用和star另外一个web框架 baa ,为了避嫌我没有贴出baa的数据,性能测试处于gin之后和iris之间.
Revel Web开源框架
个高效的Go语言Web开发框架,?其思路完全来自 Java 的?Play Framework.
特点
热编译,简单可选,同步(每个请求都创建自己的goroutine来处理.
Go语言Web框架:beego
支持特性
MVC;
REST;
智能路由;
日志调试;
配置管理;
模板自动渲染;
layout设计;
中间件插入逻辑;
方便的JSON/XML服务;
go语言web框架beego安装(go mod方式)_不忘初心,方得始终-CSDN博客
重要:将bee命令放到GOROOT/bin目录下,这步很关键
cp bee /usr/local/go/bin/
注:或者可以将GOPATH/bin设置为环境变量
echo 'export PATH=" PATH"' ~/.bashrc
source ~/.bashrc
router路由下方法名要大写,访问权限
wq保存
生效环境变量: source /etc/profile
go build -o abc.exe可指定编译后的文件名
Golang常用环境变量说明与设置详解
环境变量GOBIN表示我们开发程序编译后二进制命令的安装目录.
当我们使用go install命令编译和打包应用程序时,该命令会将编译后二进制程序打包GOBIN目录,一般我们将GOBIN设置为GOPATH/bin目录.
export GOBIN=$GOPATH/bin
Go get包管理mod
windows下默认项目路径在go安装目录的src下(beego)