这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记
在第六次课中来自字节跳动的老师为我们耐心讲解了一个用go语言实现的笔记服务demo,在课后我尝试自己复现了一遍这个demo进行学习,这里简要记录一下学习经验与心得体会。
书接上回,我们讲到了Gorm及其安装方法,今天继续看其它的知识。
Etcd
简介
Etcd是一种开源的分布式统一键值存储,用于分布式系统或计算机集群的共享配置、服务发现和的调度协调。
Opentracing
简介
Opentracing项目定义了一套分布式追踪的标准,以统一各种分布式追踪实现的实现。可以采集程序运行时的信息,可观测每个服务的耗时。
项目代码目录结构介绍
学习完了项目用到的工具,我们开始正式看一看我们的项目。
| idl | thrift / proto 接口定义文件 | |
|---|---|---|
| kitex_gen | Kitex自动生成的代码 | |
| pkg | constants | 常量 |
| errno | 错误码 | |
| middleware | Kitex的中间件 | |
| bound | Kitex Transport Pipeline-Bound 扩展 | |
| tracer | Jarger 初始化 | |
| api | demoapi服务的业务代码 | |
| cmd | note | demonote服务的业务代码 |
| user | demouser服务的业务代码 |
代码构建
在听完课程之后,我打算从只有两个thrift文件开始构建一遍这个项目,以加深对项目的理解。
创建目录
首先将项目目录创建好,以备后续编写项目。项目目录如下:
然后依照原项目,将各个接口写入note.thrift与user.proto。注意,这里使用了两种协议,是为了更好展示kitex特性,实际项目中需要注意保持一致。