这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
hertz框架学习
Hertz是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。 如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择。 并且具有高易用性高性能的特性,使用高性能网络库Netpoll,在一些场景的时延上具有一定优势,并且Hertz 采用了分层设计,提供了较多的接口以及默认的扩展实现。
安装hz框架
go install github.com/cloudwego/hertz/cmd/hz@latest
通过hz new命令生成代码
使用 Hertz(服务端)
main.go文件中输入以下代码
package main
import (
"context"
"github.com/cloudwego/hertz/pkg/app"
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/cloudwego/hertz/pkg/common/utils"
"github.com/cloudwego/hertz/pkg/protocol/consts"
)
func main() {
h := server.Default()
h.GET("/ping", func(c context.Context, ctx *app.RequestContext) {
ctx.JSON(consts.StatusOK, utils.H{"message": "pong"})
})
h.Spin()
}
通过 go mod init命令生成go.mod文件,再进行go mod tidy命令拉取依赖
完成以上操作后,我们可以直接编译并启动项目go build -o hertz_demo && ./hertz_demo或者直接使用 go run ./命令进行编译并且运行
成功启动之后
2022/05/17 21:47:09.626332 engine.go:567: [Debug] HERTZ: Method=GET absolutePath=/ping --> handlerName=main.main.func1 (num=2 handlers)
2022/05/17 21:47:09.629874 transport.go:84: [Info] HERTZ: HTTP server listening on address=[::]:8888
如果是Ubuntu环境下,可以使用curl http://127.0.0.1:8888/ping命令,或者是直接通过网页输入 http://127.0.0.1:8888/ping,获取输出结果,如果输出结果正确,输出应当为
{"message":"pong"}
参考:> blog.csdn.net/xhbzl/artic…
参考:>快速开始 | CloudWeGo