Hertz的使用| 青训营

252 阅读2分钟

1.Hertz是什么

Hertz是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。 如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择。

Hertz 是一个超大规模的企业级微服务 HTTP 框架,具有高易用性、易扩展、低时延等特点。

Hertz 默认使用自研的高性能网络库 Netpoll,在一些特殊场景中,相较于 go net,Hertz 在 QPS、时延上均具有一定优势。

在内部实践中,某些典型服务,如框架占比较高的服务、网关等服务,迁移 Hertz 后相比 Gin 框架,资源使用显著减少,CPU 使用率随流量大小降低 30%—60% 。

2.框架的特点

  • 高易用性
  • 高性能
  • 高扩展性
  • 多协议支持
  • 网络层切换能力

3.Hertz的使用

目前,hz 可以基于 thrift 和 protobuf 的 IDL 生成 Hertz 项目的脚手架。

  • 安装

    1. 安装 hz:
    go install github.com/cloudwego/hertz/cmd/hz@latest
    
    1. 验证是否安装成功 hz -v, 如果显示如下版本的信息,则说明安装成功
    hz version v0.x.x
    
  • 根据业务编写相应的idl文件

  • 使用代码生成工具自动为idl文件生成代码。

    要使用 thrift 或 protobuf 的 IDL 生成代码,需要安装相应的编译器:thriftgo 或 protoc

    hz 生成的代码里,一部分是底层的编译器生成的(通常是关于 IDL 里定义的结构体),另一部分是 IDL 中用户定义的路由、method 等信息。用户可直接运行该代码。

    运行以下命令自动生成代码。

    hz new -module xxx -I idl -idl xxx.proto/xxx.thrift
    
  • 使用代码生成工具自动为idl文件生成代码。