[ go-zero微服务项目搭建[go-zero框架] ]


Go-zero微服务框架

一. 安装

...请自行查看文档安装

二. 项目配置

  1. 配置gopath环境变量
  2. 在src目录下创建项目文件mscoin
    • ucenter就是rpc服务
    • ucenter-api就是api服务
    • grpc-common就是rpc服务公用的文件
    • mscoin-common就是api服务公用的文件
  3. 创建好上述4个文件夹(每个文件夹里面执行go mod init)
  4. 回到mscoin文件夹执行 go work init创建工作, 再添加文件夹
    • go work use ./ucenter
    • go work use ./ucenter-api
    • go work use ./grpc-common
    • go work use ./mscoin-common

三. 项目创建

  1. 进入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);
}
  1. 执行(根据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
  1. 把生成的types文件夹, 与ucenter_client文件夹移动到 ----> grpc-common公共文件里的ucenter文件夹里

  2. 回到原来的文件夹ucenter的目录结构 ----> 调整为

  3. 进入到ucenter-api文件夹里执行命令生成服务

goctl api new ucenterapi
  1. 文件生成后把ucenter-api内的文件结构 ----> 调整