今天我们来做一个有趣的 Go 实践。使用同一套代码,在一个进程中,同时启动 7种不同的 Go Web 框架。
为什么做这么无聊的事儿?
主要目的就是介绍 rookie-ninja/rk-boot 库。
启动哪些 Go Web 框架?
我们同时启动如下几个 Go Web 框架。
Web 框架 | rk-boot 依赖 | 版本 |
---|---|---|
gin-gonic/gin | go get github.com/rookie-ninja/rk-boot/gin | v1.2.14 (Stable) |
gRPC | go get github.com/rookie-ninja/rk-boot/grpc | v1.2.18 (Stable) |
labstack/echo | go get github.com/rookie-ninja/rk-boot/echo | v0.0.8 (Stable) |
gogf/gf | go get github.com/rookie-ninja/rk-boot/gf | v0.0.6 (Stable) |
gofiber/fiber | go get github.com/rookie-ninja/rk-boot/fiber | v0.0.4 (Testing) |
zeromicro/go-zero | go get github.com/rookie-ninja/rk-boot/zero | v0.0.2 (Testing) |
gorilla/mux | go get github.com/rookie-ninja/rk-boot/mux | v0.0.2 (Testing) |
快速开始
1.安装
我们通过 go get 安装如下依赖。
go get github.com/rookie-ninja/rk-boot/grpc
go get github.com/rookie-ninja/rk-boot/gin
go get github.com/rookie-ninja/rk-boot/echo
go get github.com/rookie-ninja/rk-boot/gf
go get github.com/rookie-ninja/rk-boot/fiber
go get github.com/rookie-ninja/rk-boot/zero
go get github.com/rookie-ninja/rk-boot/mux
复制代码
2.创建 boot.yaml
Web 框架 | 端口 |
---|---|
gRPC | 8081 |
gin-gonic/gin | 8082 |
labstack/echo | 8083 |
gogf/gf | 8084 |
gofiber/fiber | 8085 |
zeromicro/go-zero | 8086 |
gorilla/mux | 8087 |
除了指定端口,我们还开启了如下两个选项:
- commonService: 提供 /rk/v1/healthy 这类通用 API。
- loggingZap: RPC 日志
---
grpc:
- name: grpc
port: 8081
enabled: true
commonService:
enabled: true # Optional, default: false
interceptors:
loggingZap:
enabled: true # Optional, default: false
gin:
- name: gin
port: 8082
enabled: true
commonService:
enabled: true # Optional, default: false
interceptors:
loggingZap:
enabled: true # Optional, default: false
echo:
- name: echo
port: 8083
enabled: true
commonService:
enabled: true # Optional, default: false
interceptors:
loggingZap: