### 采用单体仓库monorepo方案, 基于go-kratos构建微服务, 注册中心使用consul #### https://github.com/go-kratos/kratos #### monorepo参考 https://github.com/go-kratos/beer-shop ### 相关目录说明 ```text api 存放对应服务的proto文件 third_party 存放第三方的proto文件 app/service 服务 common 通用的工具类 script 相关shell脚本 tool 相关工具服务 tool/gateway 开发调试网关, 例如: go run gateway.go -c 192.168.233.1:8500 ``` #### 初始化项目, 下载依赖工具, go版本1.18以上 ```shell # 开启go module go env -w GO111MODULE=on # 设置国内镜像 go env -w GOPROXY=https://goproxy.cn,directc # 下载依赖 go mod download go mod tidy # 下载相关命令工具 make init ``` #### 新建服务, 主要是复制demo项目模板并进行替换 ```shell # 例如创建user服务 make gen project=user # 创建job TODO make gen project=user type=job ``` #### 开发环境运行服务 ```shell # 运行demo服务, 修改代码自动热重载 make run project=demo ``` #### 编译 ```shell make build project=demo ``` #### 编译全部 ```shell make build-all ```