Go框架三件套详解(Kitex、Hertz与项目实战) | 青训营笔记

441 阅读2分钟

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

一、本堂课重点内容:

    1. 课程介绍
    1. 三件套使用
    1. 实战案例介绍
    1. 课程总结

二、详细知识点介绍:

    1. 课程介绍
    • 课程目标介绍
    • 三件套(Gorm、Kitex、Hertz)介绍
    1. 三件套使用
    • Kitex的基础使用
      • 安装Kitex代码生成工具
        • 目前对Windows的支持不完善,建议使用虚拟机或者WSL2
        • 安装代码生成工具
          • go install github.com/cloudwego/hertz/cmd/hz@latest
          • go install github.com/cloudwego/thriftgo@latest
        • 定义IDL
          • 使用IDL定义服务与接口
            • 如果要进行RPC,就需要知道对方的接口是什么,需要传什么参数,同时也需要知道返回值是什么样子的。这时候就需要调用某个函数,我们需要知道函数签名一样
        • Kitex生成代码
          • 通过使用 kitex -module example -service example echo.thhrift命令生成代码
            • build.sh:构建脚本
            • kitex_gen:IDL内容相关的生成代码,主要是基础的Server/Client代码
            • main.go 程序入口
            • handler.go 用户在该文件里实现 IDLservice定义的方法
      • 基础使用
        • 服务默认监听8080端口
      • Kitex Client发送请求
        • 创建Client
        • 发送请求
      • Kitex 服务注册与发展
        • 目前Kitex的服务注册与发现已经对接了主流服务注册与发展中心,如ETCD,Nacos等
      • Kitex 生态
        • 2f87236b0dae988ca3bdca05a4ad58d.jpg
    • 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生态
        • 2e371979e7f3cab69965de936241086.jpg
    1. 实战案例介绍
    • 实战项目介绍
      • 笔记项目,使用Hertx、Kitex、Gorm搭建出来的具备一定业务逻辑的后端API项目
      • 6273c3f5436f6af532fc4d98b6781d5.jpg
    • 项目功能介绍
      • 6b01d908e585c54bdefced9bc68d0a4.jpg
      • 调用关系:
        • d228d47296db66a6901edf7da9bf0ea.jpg
      • 技术栈
        • 0c589043fe817798f7803573bd7cafe.jpg
    • 关键代码

三、课后个人总结:

  • 好好学习 天天向上