使用kitex与gorm开发微服务-1 | 青训营笔记

222 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天

本系列文章记录了我学习开发一个用户微服务的过程,主要使用kitex进行微服务开发,gorm作为orm。本项目使用etcd作为服务注册中心。

这是第一篇,本篇我们主要看一下项目的整体结构。

用户微服务项目结构

image.png

我们在cmd中存放测试用的client,gorm-gen的代码,migrateSchema数据库表的迁移代码。

  • client内主要为测试服务api的客户端程序。
  • gorm-gen是orm中间层代码生成工具,gormGen中gen.go存放的是生成脚本,用于从dal/model中读取定义号的模型,然后生成数据库的操作代码。
  • migrateSchema利用db.AutoMigrate来将定义好的模型迁移到数据库。

image.png

dal中存放所有数据相关的代码。目录中model中存放定义的模型,用于gorm生成表。query是gorm-gen自动生成的代码,用于数据库增删改查的代码。initdb.go 为数据库的启动代码,我们在这里实现了一个init函数,用于main.go中进行数据库初始化连接。

image.png

idl中存放接口文件,user.thrift定义微服务的接口,后续使用kitex生成代码。

image.png

其余文件除了Dockerfile,README.md与service外均为kitex生成的代码,我们需要修改的主要是main.go和handle.go,前者是程序入口,我们后续需要在这里对程序进行设置,后者是接口的handle方法存在的地方,我们需要在这里完成api的逻辑实现。

image.png

下一篇,我们会着重介绍数据层的实现以及gorm-gen的使用方法。

(ps. 不好意思分成了很多篇短文,都是任务=,=,没办法)