RPC(远程过程调用)被称为“远程”,因为它在微服务架构下,使得部署到不同服务器的服务之间能进行通信。从用户的角度看,它就像一个本地函数调用。
RPC是一种远程控制,就是利用网络对计算机进行远程操控,这样就不需要再花费额外的时间各地奔波,而gRPC是一种高性能的RPC框架。
以下图示说明了gRPC的整体数据流。
步骤1:客户端发起一个REST调用。请求体通常为JSON格式。
步骤2 - 4:订单服务(gRPC客户端)接收REST调用,转换它,并向支付服务发起RPC调用。gPRC将**客户端存根(client stub)**编码为二进制格式,发送至底层传输层。
步骤5:gRPC通过HTTP2将数据包发送至网络。由于二进制编码和网络优化,gRPC的速度据说比JSON快5倍。
步骤6 - 8:支付服务(gRPC服务器)从网络接收数据包,解码它们,并调用服务器应用程序。
步骤9 - 11:结果从服务器应用程序返回,并被编码并发送到传输层。
步骤12 - 14:订单服务接收数据包,解码它们,并将结果发送至客户端应用程序。