gRPC

proto

protobuf是Google开源的一款支持跨平台、语言中立的结构化数据描述和高性能序列化协议,此协议完全基于二进制,所以性能要远远高于JSON/XML。由于出色的传输性能所以常见于微服务之间的通讯,其中最为著名的是Google开源的 gRPC 框架。

proto 文件格式

syntax = "proto3";                      // 声明使用proto3语法
package hello;                          // 声明package以防止protocol message类型之间的名称冲突

option go_package = "gxyan.com/proto/hello";    // 声明生成的go文件的package
option java_package = "com.gxyan.grpc";         // 声明java文件的package

service HelloService {
  rpc Hello (HelloRequest) returns (HelloReply);
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

使用

下载Protocol Buffers,安装protobuf的Go编译插件及grpc插件

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

此处记得设置GOPATH环境变量

protoc --go_out=. --go_opt=paths=source_relative hello.proto
protoc --go-grpc_out=. --go-grpc_opt=paths=source_relative hello.proto

Protocol Buffer Basics: Go

gRPC-GUIDE

posted @ 2024-01-23 20:46  及第  阅读(17)  评论(0编辑  收藏  举报