Go-zero微服务框架
一. 安装
...请自行查看文档安装
二. 项目配置
- 配置gopath环境变量
- 在src目录下创建项目文件mscoin
- ucenter就是rpc服务
- ucenter-api就是api服务
- grpc-common就是rpc服务公用的文件
- mscoin-common就是api服务公用的文件
- 创建好上述4个文件夹(每个文件夹里面执行go mod init)
- 回到mscoin文件夹执行 go work init创建工作, 再添加文件夹
- go work use ./ucenter
- go work use ./ucenter-api
- go work use ./grpc-common
- go work use ./mscoin-common
三. 项目创建
- 进入ucenter就是grpc服务, 创建api文件夹, 在里面创建文件register.proto文件
register.proto
// 声明 proto 语法版本,固定值
syntax = "proto3";
// proto 包名
package register;
// 生成 golang 代码后的包名
option go_package = "./register";
// 定义请求体
message RegReq {
string username = 1;
string password = 2;
CaptChaReq capthcha = 3;
string phone = 4;
string promotion = 5;
string code = 6;
string country = 7;
string superPartner = 8;
}
// 定义响应体
message CaptChaReq {
string server = 1;
string token = 2;
}
message RegRes{}
message CodeReq{
string phone = 1;
string country = 2;
}
message CodeRes{}
// 定义 Greet 服务
service Register {
// 定义一个 SayHello 一元 rpc 方法,请求体和响应体必填。
rpc registerByPhone(RegReq) returns (RegRes);
rpc sendCode(CodeReq) returns (CodeRes);
}
- 执行(根据proto文件生成grpc微服务)
第一次生成grpc服务+proto文件命令:
goctl rpc protoc register.proto --go_out=./types --go-grpc_out=./types --zrpc_out=./register --style go_zero
后期修改proto文件添加其他grpc接口时执行: --> 然后把当前文件夹types文件里面的两个文件复制, 覆盖吊grpc-common里的types里的register里的两个文件
protoc register.proto --go_out=./types --go-grpc_out=./types
-
把生成的types文件夹, 与ucenter_client文件夹移动到 ----> grpc-common公共文件里的ucenter文件夹里
-
回到原来的文件夹ucenter的目录结构 ----> 调整为
-
进入到ucenter-api文件夹里执行命令生成服务
goctl api new ucenterapi
- 文件生成后把ucenter-api内的文件结构 ----> 调整