Juan-King / eight-part-essay

八股文仓库
0 stars 0 forks source link

grpc的通信方式有哪些? #3

Open sarina-creat opened 3 years ago

sarina-creat commented 3 years ago

grpc的通信模式共有4种基础通信模式,一元RPC,服务器端流RPC,客户端流RPC以及双向流RPC。 在一元RPC模式中,当客户端调用服务器端的远程方法,客户端发送请求至服务器端并获得一个响应,与响应一起发送的还有状态细节以及trailer元数据。这也是grpc最常用的通信方式。 在服务器端流RPC模式,服务器端在接收到请求消息后会发回一个响应的序列,这种多个响应所组成的序列叫做流,将所有服务器端响应发送完毕之后,会以trailer元数据的形式将其状态发送给客户端,从而标记流的结束。 在客户端流RPC模式中,客户端会发送多个请求到服务端,而不是单个请求,服务端则会发送一个回复消息给客户端。这种处理模式下服务端可以基于自己的业务逻辑,决定是否从客户端接收到所有消息才发送响应。 在双向流RPC模式中,定义方法参数和返回参数都声明为stream,同样根据proto文件定义生成服务器端代码和客户端stub的代码。服务可在持续读取/传入消息流的同时,使用recv/send方法将消息读取/写入同一个流中接收/发送。