gRPCGoogle开源的基于HTTP/2和ProtoBuf的通用RPC框架
Posted 小象
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gRPCGoogle开源的基于HTTP/2和ProtoBuf的通用RPC框架相关的知识,希望对你有一定的参考价值。
gRPC具有以下重要特征:
强大的IDL特性
gRPC使用ProtoBuf来定义服务,ProtoBuf是由Google开发的一种数据序列化协议(类似于XML、JSON、hessian)。ProtoBuf能够将数据进行序列化,并广泛应用在数据存储、通信协议等方面。不过,当前gRPC仅支持 Protobuf ,且不支持在浏览器中使用。由于gRPC的设计能够支持支持多种数据格式,所以读者能够很容易实现对其他数据格式(如XML、JSON等)的支持。
定义服务的示例代码如下:
支持多种语言
gRPC支持多种语言,并能够基于语言自动生成客户端和服务端功能库。目前,在GitHub上已提供了C版本grpc、Java版本grpc-java 和 Go版本grpc-go,其它语言的版本正在积极开发中,其中 grpc支持C、C++、Node.js、Python、Ruby、Objective-C、php和C#等语言,grpc-java已经支持Android开发。
基于HTTP/2标准设计
由于gRPC基于HTTP/2标准设计,所以相对于其他RPC框架,gRPC带来了更多强大功能,如双向流、头部压缩、多复用请求等。这些功能给移动设备带来重大益处,如节省带宽、降低TCP链接次数、节省CPU使用和延长电池寿命等。同时,gRPC还能够提高了云端服务和Web应用的性能。gRPC既能够在客户端应用,也能够在服务器端应用,从而以透明的方式实现客户端和服务器端的通信和简化通信系统的构建。
gRPC已经应用在Google的云服务和对外提供的API中,其主要应用场景如下:
低延迟、高扩展性、分布式的系统;
同云服务器进行通信的移动应用客户端;
设计语言独立、高效、精确的新协议;
便于各方面扩展的分层设计,如认证、负载均衡、日志记录、监控等。
来源:InfoQ
以上是关于gRPCGoogle开源的基于HTTP/2和ProtoBuf的通用RPC框架的主要内容,如果未能解决你的问题,请参考以下文章