更方便的在微信公众号阅读文章可以关注公众号:海生的go花园
一、介绍
现在微服务,有主要的两种方式 rest api 以及 grpc。
相比rest api ,grpc有更快的速度,更小的体积,可以显著的替身性能。
1、什么是gRpc
grpc是一个”远程调用过程“RPC框架。rpc是从远程调用一个微服务的函数。
grpc是一种围绕protobuf协议,进行进程间通信的一种方式。通过protobuf来处理客户端和服务端的 消息message。
如下图:通过protobuf,我们生成客户端和服务端函数,以及message。
一切都是建立在protobuf协议上的。
所以使用grpc,我们一般都是先定义proto文件,然后转成客户端以及服务端go代码。
这种架构,非常适合 ”客户端-服务器“ 应用程序。
2、如何用protobuf描述grpc
一个grpc服务使用 service,以及message两个关键字描述。
service HelloService {
rpc SayHello (HelloRequest) returns (HelloResponse);
}
message HelloRequest {
string greeting = 1;
}
message HelloResponse {
string reply = 1;
}
在这里我们先定义一个 HelloService,提供一个SayHello方法,供其他的服务调用。
请求的message为HelloRequest,供client请求参数使用。
返回message为HelloResponse,server返回给client。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。