这是我参与「第五届青训营 」伴学笔记创作活动的第 18 天
实战项目介绍
笔记项目是一个使用hertz,kitex,gorm搭建出来的具备一定业务逻辑的后端api项目。
demoapi:api服务,http协议,主要技术栈:gorm/kitex/hertz
demouesr:用户数据管理,protobuf协议,主要技术栈:gorm/kitex
demonote:笔记数据管理,thrift协议,主要技术栈: gorm/kitex
项目功能介绍
项目模块:
demoapi:用户登录,用户注册,用户创建笔记,用户更新笔记,用户删除笔记,用户查询笔记。
demouser:创建用户,查询用户,校验用户。
demonote:创建笔记,更新笔记,删除笔记,查询笔记。
项目调用关系
可以点开以下链接查看:github.com/cloudwego/k…
项目技术栈
语言:go
底层存储:mysql
服务注册:cmd
rpc框架:kitex及其扩展。
orm框架:gorm及其扩展
http框架:hertz及其框架
链路追踪:opeantracing,jeager。
使用基本功能
-
中间件、速率限制、请求重试、超时控制、连接多路复用
-
追踪
- 使用jaeger进行跟踪
-
自定义的BoundHandler
- 实现CPU利用率自定义绑定处理程序
-
服务发现和注册
- 使用寄存器y-etcd到发现和注册服务
实战流程
设置基本依赖项,运行notes rpc server,运行用户rpc服务器,运行api server,自定义错误代码,api请求包括注册,响应,登录将返回jwt令牌,响应,创建便筏,响应,查询注释,响应,更新注释,响应,删除便签,响应。
总结
了解gorm/kitex/hertz三件套是什么,熟悉gorm/kitex/hertz三件套的基础用法。通过笔记项目实战将三个框架的使用串联了起来。希望之后可以去官方文档熟悉更多的用法,在后续的实战经历中可以使用gorm/kitex/hertz三件套来完成开发,其次可以在github中贡献自己的一份力量。