这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记,首先我很感谢字节能给我这么一个优秀的学习平台,能够这么近距离的接触大佬,真的好激动,尤其是金柱老师,而且杭州字节离我超级近(哈哈哈哈)。
直接进入主题,此次的课程安排了基于Kitex、Gorm和Gin的笔记服务项目,其中包含了rpc、http以及orm的思想。 笔者此前有过pythonWeb的实习经验,rpc框架Kitex理解不是很充分,Gin框架好理解,Gorm也还是很好理解的。
需要提前学习的工具:
- Docker
- Postman
- Git 以及知识:
- Kitex
- Gorm
- Etcd
- OpenTracing
项目整体分成了三个功能模块,分别是API服务、用户数据管理和笔记数据管理。
项目地址github.com/cloudwego/k…
| 服务名称 | 技术框架 | 传输协议 | 注册中心 | 链路追踪 |
|---|---|---|---|---|
| demoapi | Gorm Kitex Gin | http | etcd | opentracing |
| demouser | Gorm Kitex | protobuf | etcd | opentracing |
| demouser | Gorm Kitex | thrift | etcd | opentracing |
服务之间的调用关系
功能模块介绍
项目定义user和note的idl(interface define language),我在使用kitex自动生成kitex-gen代码那块直接卡死了,基于thrift协议的可以正常生成,但是protobuf协议的代码则无法正常生成。这也算是一个坑。 其他部分的逻辑都比较清楚。 main中包含了初始化的信息,handlers中是request和response的方法的封装,rpc是同样也是底层逻辑的抽象,真正的实现逻辑是在service中,还是需要去掌握项目的整体架构,或者说是框架,就想写文章,大纲写完了,接下来就把每一段展开讲就好了。 在测试阶段需要特别注意的是请求头里面需要带上token字段,还有字段过期。 Docker的话自己去多玩玩就可以。云原生驱动后端技术的升级。 我再去研究实现kitex