周哥教IT-gRPC编程详解
gRPC:Google推出的基于protobuf实现的RPC。
A high-performance, open-source universal RPC framework。
gRPC是一个现代的、开源的、高性能远程过程调用(RPC)框架,可以在任何平台运行。gRPC使客户端和服务器端应用程序能够透明地进行通信,并简化了连接系统的构建。gRPC支持的语言包括C++、Ruby、Python、Java、Go等。
gRPC在客户端与服务端通信之中应用非常广泛,事实上的标准。服务端开发必备技能。
Restful API(基于http,提供get, post, put, delete,C/C++中主要是基于CURL实现)
gRPC和Restful API都提供了一套通信机制,用于server/client模型通信,而且它们都使用http作为底层的传输协议(严格地说, gRPC使用的http2.0,而restful api则不一定)。
不过gRPC特有优势:
1,gRPC可以通过protobuf来定义接口,从而可以有更加严格的接口约束条件。我们不希望客户端给我们传任意数据,尤其是考虑到安全性的因素,通常需要对接口进行更加严格的约束。这时gRPC就可以通过protobuf来提供严格的接口约束。
2,另外,通过protobuf可以将数据序列化为二进制编码,这会大幅减少需要传输的数据量,从而大幅提高性能。
3,gRPC可以方便地支持流式通信(理论上通过http2.0就可以使用streaming模式, 但是通常web服务的restful api似乎很少这么用,通常的流式数据应用如视频流,一般都会使用专门的协议如HLS,RTMP等,这些不是通常的web服务而是有专门的服务器应用。)
VIP视频课程
gRPC编程详解课程课件
gRPC课程课件pdf课程参考
gRPC官网gRPC支持各编程语言