返回首页 hi, 欢迎来到机器人在线 请登录/ 免费注册 扫码关注
  • 什么是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服务降级框架和流控制功能确保了服务的高可用性。

问答分类

技术分类