笔记项目实战 | 青训营笔记

130 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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利用率自定义绑定处理程序
  • 服务发现和注册

实战流程

设置基本依赖项,运行notes rpc server,运行用户rpc服务器,运行api server,自定义错误代码,api请求包括注册,响应,登录将返回jwt令牌,响应,创建便筏,响应,查询注释,响应,更新注释,响应,删除便签,响应。

总结

了解gorm/kitex/hertz三件套是什么,熟悉gorm/kitex/hertz三件套的基础用法。通过笔记项目实战将三个框架的使用串联了起来。希望之后可以去官方文档熟悉更多的用法,在后续的实战经历中可以使用gorm/kitex/hertz三件套来完成开发,其次可以在github中贡献自己的一份力量。