这是我参与「第五届青训营」伴学笔记创作活动的第 8 天。
一、本堂课重点内容:
-
- 课程介绍
-
- 三件套使用
-
- 实战案例介绍
-
- 课程总结
二、详细知识点介绍:
-
- 课程介绍
- 课程目标介绍
- 三件套(Gorm、Kitex、Hertz)介绍
-
- 三件套使用
- Kitex的基础使用
- 安装Kitex代码生成工具
- 目前对Windows的支持不完善,建议使用虚拟机或者WSL2
- 安装代码生成工具
- go install github.com/cloudwego/hertz/cmd/hz@latest
- go install github.com/cloudwego/thriftgo@latest
- 定义IDL
- 使用IDL定义服务与接口
- 如果要进行RPC,就需要知道对方的接口是什么,需要传什么参数,同时也需要知道返回值是什么样子的。这时候就需要调用某个函数,我们需要知道函数签名一样
- 使用IDL定义服务与接口
- Kitex生成代码
- 通过使用 kitex -module example -service example echo.thhrift命令生成代码
- build.sh:构建脚本
- kitex_gen:IDL内容相关的生成代码,主要是基础的Server/Client代码
- main.go 程序入口
- handler.go 用户在该文件里实现 IDLservice定义的方法
- 通过使用 kitex -module example -service example echo.thhrift命令生成代码
- 基础使用
- 服务默认监听8080端口
- Kitex Client发送请求
- 创建Client
- 发送请求
- Kitex 服务注册与发展
- 目前Kitex的服务注册与发现已经对接了主流服务注册与发展中心,如ETCD,Nacos等
- Kitex 生态
- 安装Kitex代码生成工具
- Hertz的基础使用
- 使用Hertz实现,服务监听8080端口并注册了一个GET方法的路由函数
- Hertz路由
- 提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由
- 提供了路由器(Group)的能力,用于支持路由分组的功能
- 提供了参数路由和通配路由,路由的优先级为:静态>命名>通配
- Hertz参数绑定
- 提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验
- Hertz中间件
- 主要分为客户端中间件和服务端中间件
- Hertz Client
- 提供了HTTP Client用于帮助用户发送HTTP请求
- Hertz代码生成工具
- 代码生成工具Hz,通过定义IDL文件即可生成对应的基础服务代码
- Hertz性能
- 网络库 Netpoll
- Json解码器Sonic
- 使用sync.Pool复用对象协议层数据解析优化
- Hertz生态
-
- 实战案例介绍
- 实战项目介绍
- 笔记项目,使用Hertx、Kitex、Gorm搭建出来的具备一定业务逻辑的后端API项目
- 项目功能介绍
- 调用关系:
- 技术栈
- 关键代码
三、课后个人总结:
- 好好学习 天天向上