gPRC
概述
gRPC基于服务定义,指定可以使用的参数和返回类型的远程调用方法
gRPC使用proto buffers 作为接口定义语言(Interface Definition Language,IDL),用于描述服务接口和有效载荷消息
服务方法:
一元RPC
单个请求,单个响应,类似普通函数
服务器流式RPC
客户端请求一个RPC,可以获取多个消息,每个消息可以保证顺序
客户端流式RPC
客户端请求一个RPC,可以发送多个消息,写入完成后就可以等待服务器响应,保证发送顺序
双向流式RPC
客户端和服务端双方使用读写流发送多个消息,两个流独立运行,独立流中的消息有序
调用流程
使用proto buffers 定义服务(生成.proto文件),gRPC有生成rpc调用对象的插件,生成的对象文件可以在客户端和服务端调用,其中:
客户端是调用并传入对应参数类型,并接受服务端的返回
服务端需要接受客户端参数去实现具体功能并返回符合定义的返回结果。
调用方式
同步:同步阻塞调用最符合RPC定义的过程调用的抽象
异步:RPC调用本质上是网络调用,网络本身是有延迟的,特殊情况下,非阻塞的异步调用能更高的提高效率