gRPC 简介
根据官网的介绍,gRPC 是开源高性能远程过程调用(RPC)框架,可以在任何环境中运行。它可以有效地连接数据中心内部和数据中心之间的服务,并为负载平衡、跟踪、运行状况检查和身份验证提供支持。同时由于其建立在HTTP2和Protobuf 消息编码协议的基础上,可以在应用程序和服务之间提供高性能、低带宽的通信。 它支持跨最常用的编程语言和平台(包括 .NET、Java、Python、Node.js、Go、C++)生成服务器和客户端代码。如下图所示,截取自gRPC 官网
Protocol Buffers 简介
gRPC 使用Protocol Buffers作为其接口定义语言(IDL)和基础消息交换格式。Protocol Buffers是用于序列化、结构化数据,它与语言无关、与平台无关。它具备紧凑的数据存储、快速解析、支持多种编程语言和通过自动生成的类优化功能。下面的代码是一个.proto 文件
message RouteSummary {
int32 point_count = 1;
int32 feature_count = 2;
int32 distance = 3;
int32 elapsed_time = 4;
string name = 5;
}
下图展示了Protocol Buffers是如何工作的,gRPC 使用 Protocol Compiler Plugin 将生成各种已支持语言的客户端侧和服务端侧的代码,使用者只要在客户端调用这些接口,并在服务端完成相应接口的逻辑即可。