这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
一、本堂课重点内容:
1.三件套(Gorm、Kitx、Hertz)的基本用法与常见API讲解 2.实战项目介绍、实战项目功能介绍、实战项目关键代码讲解
二、详细知识点介绍:
Gorm
一个已经迭代了10年+的功能强大的ORM框架,拥有非常丰富的开源拓展。
Kitex
字节内部的微服务RPC框架,具有高性能、强可拓展的主要特点,支持多协议并且拥有丰富开源拓展。
Hertz
是字节内部的HTTP框架,参考了其他开源框架的优势,结合字节跳动的需求,具有高易用、高性能、高拓展性特点。
GORM使用
昨天寄过了。
Kitex使用
Kitex安装
定义IDL
Kitex生成代码
使用kitex -module example -service example echo.thrift生成代码
build.sh生成脚本
kitex_gen:IDL内容相关的生成代码,主要是基础的Server/Client代码
main.go 程序入口
handler.go 用户在该文件里实现IDL service定义的方法
Kitex Client发起请求
创建Client
发起请求
Kitex服务注册与发现
目前,Kiex的服务注册与发现已经对接了主流服务注册与发现中心,如ETCD,Nacos等。
Hertz基本使用
使用Hertz实现,服务监听8080端口并注册了一个GET方法的路由函数。
Hertz路由
Hertz提供了GET、POST、PUT、DELETE、ANY等方法用于注册路由
Hertz提供了路由组(Group)的能力,用于支持路由分组的功能。
Hertz提供了参数路由和通配路由,优先级为:静态路由>命名路由>通配路由
Hertz参数绑定
Hertz提供了Bind、Validate、BindAndValidate函数用于进行参数绑定和校验
Hertz中间件
Hertz的中间件主要分为客户端中间件与服务端中间件,如下展示了一个服务端中间件
Hertz Client
Hertz提供了HTTP Client用于帮助用户发送HTTP请求
Hertz代码生成工具
目录结构
生成文件
Hertz性能
1.网络库Netpoll 2.Json解编码Sonic 3.使用sync.Pool复用对象协议层数据解析优化
Hertz生态
三、实践练习例子:
本次课程的实战练习例子是一个笔记项目
使用Hertz、Kitex、Gorm搭建出来的具有一定业务逻辑的后端API项目
调用关系
IDL介绍
技术栈介绍
通过本次实践例子练习,很好的理解了后端的业务逻辑并且一定的学会使用了课堂所教的三个框架。
四、课后个人总结:
由于没学过微服务,中间件等。像Kitex和Hertz这样的框架,我是第一次接触,对于有些地方不是很理解。而且上手的时候,不太会用。需要去好好了解概念并看文档。
五、引用参考:
全为课程内容