目录
简介
gRPC是Google基于protobuf开发的跨语言的开源RPC框架。基于http 2.0协议设计,可以基于一个HTTP/2链接提供多个服务。在 gRPC里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。
实现方式:
- 定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。
- 在服务端实现这个接口,并运行一个 gRPC服务器来处理客户端调用。
安装:
go get -u -v google.golang.org/grpc
gRPC远程调用
目录结构
- Microservices/PB/person.proto
- Microservices/PB/person.pb.go
- Microservices/gRPC/Client/main/grpc_client.go
- Microservices/gRPC/Server/main/grpc_server.go
person.proto
syntax = "proto3";//正在使用`proto3`语法
package pb;
option go_package ="../pb";// 避免错误 unable to determine Go import path for "myproto.proto"
// 消息体 --- 一个package中不可以定义同名的消息体(如People)
message Teacher{
int32 age = 1;
string name = 2;
}
// 定义服务
service SayName{
rpc SayHello(Teacher) returns (Teacher);
}
编译
protoc --go_out=plugins=grpc:./ *.proto
person.pb.go(编译后自动生成)
API部分
// ServiceSayClient is the client API f