1.概览
Remote Procedure Calls(RPCs)为构造分布式应用程序和服务提供了一个有用的抽象。Google RPC是对gRPC协议的一个具体的实现库,基于http/2。
2.接口
开发人员在使用grpc的时候,都需要定义基于rpc的方法描述,然后调用google rpc的代码生成库自动生成客户端和服务端程序,开发者将在服务端实现这套方法,以供在客户端使用。
Google RPC默认的是使用protocol buffer来描述服务端的方法和有效的传输信息。当然也可以选择其他的方法来定义。
3.外部api
开始于一个在.proto文件中的接口定义。gRPC提供了协议编译器插件来生成客户端和服务端API。grpc 用户在客户端调用这些api并且在服务端实现相关的api方法。
4.同步与异步
同步rpc调用将阻塞直到服务器作出响应,同时同步调用也是rpc最渴望实现的方法。然而另一方面,网络内在的事异步的在许多场景下,它也可以有能力开启rpc在没有阻塞当前线程。grpc提供多种语言的同步和异步方法。
5. 流
grpc提供流场景,客户端和服务端都可以发送一个基于流的信息在一个rpc调用中。通用的案例是在客户端和服务端建立一个流,然后彼此发送流信息。流信息按序发送 。
6.协议
grpc协议制定了抽象的需求为客户端和服务端之间的通讯。一个具体的嵌入在http/2来完成每一个需要的操作。
7. 抽象grpc协议
Google RPC是一个基于google protocol buffer的remote process control的框架库,通过google rpc,我们可以根据我们在proto中定义的接口方法,自动生成对应rpc抽象方法。Google RPC为我们提供了客户端和服务端的生成。我们可以直接使用google rpc构造我们的分布式程序和服务。同时,我们必须知道google rpc实现了通过http2上传输的grpc方法。同时google rpc提供同步和异步调用方法调用。同时google rpc还提供了流传输。