hertz框架学习 | 青训营笔记

72 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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