Gorm、Kitex、Herz三件套简要介绍 | 青训营笔记

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

一、Gorm、Kitex、Herz介绍

1.Gorm

一个已经迭代了 10 年以上的功能强大的 ORM 框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展 。

2.Kitex

是字节内部的 Golang 微服务 RPC 框架,具有高性能、强可扩展的主要特点 , 支持多协议并且拥有丰富的开源扩展 。

3.Herz

是字节内部的 HTTP 框架,参考了其他开源框架的优势,结合字节跳动内部的需求,具有高易用性、 高性能、高扩展性特点 。

二、Gorm、Kitex、Herz三件套的使用

1.Gorm 的基本使用

Gorm 约定:使用名为 ID 的字段作为主,使用结构体的蛇形负数作为表名,字段名的蛇形作为列名,使用 CreatedAt、UpdatedAt 字段作为创建、更新时间。

GORM 目前支持 MySQL、SQLServer、PostgreSQL、SQLite。GORM 通过驱动来连接库,如果需要连接其它类型的库,可以复用或自行开发驱动。

1.Gorm 创建数据

2.Gorm 查询数据

3.Gorm 更新数据

4.Gorm 删除数据

5.Gorm 事务

6.Gorm Hook

7.Gorm 性能提高

8.Gorm 生态

image.png

2. Kitex 的基本使用

1.使用步骤:

  • 定义 IDL
  • Kitex 生成代码

2.示例:

  • Kitex Client 发起请求

3.Kitex 服务注册与发现

4.Kitex 生态

image.png

3.Herz 的基本使用

1. Hertz 基本使用

使用 Hertz 实现,服务监听 8080 端口并注册一个 GET 方法的路由函数。

2.Hertz 参数绑定

Hertz 提供了 Bind、Validate、BindAndValidate 函数用于进行参数绑定和校验。

3.Hertz 中间件

Hertz 的中间件主要分为客户端中间件与服务端中间件。

4.Hertz Client

Hertz 提供了 HTTP CIient 用于帮助用户发送 HTTP 请求。

5.Hertz 代码生成工具

Hertz 提供了代码生成工具 Hz,通过定义 lDL(inteface description language)文件即可生成对应的基础服务代码 。

6.Hertz 性能

网络库 Netpoll、Json 编解码 Sonic 和 使用 sync.Pool 复用对象协议层解析优化。

7.Hertz 生态

image.png