Golang 安装grpc和proto

前言

grpc 是一个高性能、开源和通用的 RPC 框架

protocol buffer 是 Google 出品的一种轻量 & 高效的结构化数据存储格式,性能比 JSON、XMS 强很多。

微服务架构中,由于每个服务对应的代码库是独立运行的,无法直接调用,彼此间的通信是个大问题。grpc 可以实现微服务,将大的项目拆分为多个小且独立的业务模块,也就是服务,各服务间使用高效的 protobuf 协议进行 RPC 调用,grpc 默认使用 protocol buffers。

grpc 文档地址:Quick start | Go | gRPC

protobuf 文档地址:Protocol Buffer Basics: Go | Protocol Buffers Documentation

安装 protoc

 这里讲的是 Windows 环境下的安装,若为其他系统的设备,按照文档编译安装即可。

下载地址:https://github.com/google/protobuf/releases

可能很多小伙伴因为网速等打不开链接或下载速度慢, 分享一个下载好的

百度网盘 请输入提取码 提取码 s42z

下载完成后,配置全局环境变量:将 protoc/bin 配置到全局变量中

具体的 protoc/bin 路径按照自己的来即可

安装 grpc 和 protobuf

# 安装 grpc
go get google.golang.org/grpc
# 安装 protobuf
go get google.golang.org/protobuf

安装编译protoc的go插件

go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

编译.proto文件

example.proto 文件:

syntax = "proto3";
option go_package = ".;proto";

service Example {
  // 获取用户列表页
  rpc GetUserList(SearchRequest) returns (ListResponse);
}

message SearchRequest {
  string query = 1;
  int32 page_number = 2;
  int32 results_per_page = 3;
}

message InfoResponse {
  int32 id = 1;
  string password = 2;
  string mobile = 3;
  string nickName = 4;
  uint64 birthDay = 5;
  string gender = 6;
  int32 role = 7;
}

message ListResponse {
  int32 total = 1;  // 总数
  repeated InfoResponse data = 2;
}

编译:

protoc --go_out=. example.proto
# 生成 grpc
protoc -I . example.proto --go-grpc_out=:.  

执行成功之后,会生成 example.pb.go 和 example_grpc.pb.go 文件

注意

若 .proto 文件中没有 service,执行生成 grpc 命令后不会生成 *_grpc.pb.go 文件

你可能感兴趣的:(golang,开发语言,后端)