-
什么是RPC?
提问:小陈 | 时间:2022-11-12 16:18:56
标签:rpc
回答者:库茂机器人 | 时间:2022-11-14 16:19:17
什么是RPC
RPC的全名是RemoteProcedureCall--远程过程调用。在学校学习编程时,我们可以在本地调用函数。但在互联网公司,该服务是部署在不同服务器上的分布式系统。
简言之,RPC是一种远程调用服务的技术,使调用者调用本地服务更加方便和透明。
1)客户端发送服务调用请求。
2)clientstub可以理解为代理,并将调用该方法。以特定格式封装参数,并通过服务提供的地址启动网络请求。
3)信息通过网络传输到服务器。
4)服务器存根接受来自套接字的消息
5)服务器存根解压缩消息。它告诉服务器要调用哪些服务以及参数是什么
6)结果返回到serverstub
7)Severstub打包结果套接字
8)套接字通过网络传输消息
9)客户端从套接字获取消息
10)解包clientstub消息将返回结果客户端。
RPC框架封装了步骤2到9。
为什么需要RPC
1.首先,明确RPC可以用HTTP实现,并使用HTTP协议。HTTP是最广泛使用的基于TCP的RPC。然而,互联网公司经常使用自己的私有协议,如鹅工厂JCE协议。为什么私有协议不通用?HTTP协议和RPC采用二进制字节码传输,更高效、更安全。
2.该行业现在提倡“微服务”。目前,服务之间有两种通信方式,RPC就是其中之一。RPC可以确保不同服务之间的相互调用。甚至跨语言和跨平台都不是问题,这使得构建分布式系统变得更容易。
3.RPC服务降级框架和流控制功能确保了服务的高可用性。