Go gRPC学习

  由于实习项目中用的是 gRPC ,在学习 gRPC 之前,我们需要先学习一下 proto 语法

proto 简介

proto 语法

proto 文件编译

1,由于官方的 protoc 编译器中并不支持 Go 语言,所以首先下载 基于 Go 语言插件才能生成 Go 代码。命令如下:

$ go get github.com/golang/protobuf/protoc-gen-go

上述命令会在 GOPATH 下的 bin 目录下生成一个 protoc-gen-go 的可二进制文件(windows 系统)

2,下载官方的 protoc 编译器,下载地址:https://github.com/protocolbuffers/protobuf/releases ,可以下载 64位 protoc-win64.zip,解压后在 bin 目录下有 protoc 的二进制文件,将此文件拷贝到系统的环境变量中的 PATH 目录下(windows 系统可在 cmd 下输入命令 set 查看环境变量),当显示如下图所示时,表示设置成功:

 3,然后编写一个 proto 文件,例如

syntax = "proto3";
package SayHi;


service greetService {
    rpc SayHi(SayHiReq) returns (SayHiRsp); // 打声招呼
}

message SayHiReq {
    string value = 1;
}

message SayHiRsp {
    string value = 2;
}

4,执行 protoc 命令生成需要的语言代码,本文举例编译输出 Go 语言代码,命令如下:

$ protoc -I=. --go_out=plugins=grpc:. hello.proto

参数解释:-I : 表示原文件 hello.proto 的文件路径;--go_out[--java_out] 表示生成的语言类型;=. : 表示要生成的 hello.pb.go 的路径;

注:. 表示当前路径

注:此命令不能用 protoc -I=. --go_out=. hello.proto, 这样生成的 Go 语言代码是不完整的,缺少 server 和 client 端代码,具体原因未知。要使用protoc-gen-go内置的gRPC插件生成gRPC代码。

猜你喜欢

转载自www.cnblogs.com/zpcoding/p/12392570.html
今日推荐