RPC框架简述

版权声明:转发请注明链接和出处,靴靴 https://blog.csdn.net/weixin_43525116/article/details/85093584

RPC(remote procedure call)远程过程调用。

比如:两台服务器A和B,A服务器上部署一个应用,B服务器上部署一个应用,A服务器上的应用想调用B服务器上的应用提供的接口,由于不在一个内存空间,不能直接调用,所以需要通过网络来表达调用的语义和传达调用的数据。

一、步骤:

  1. 通讯问题:客户端和服务端建立TCP连接,远程过程调用的所有交换的数据都在这个连接里传输;(连接可以是按需连接,调用结束后就断掉,也可以是长连接,多个远程过程调用共享一个连接)
  2. 寻址问题:A服务器通过底层RPC框架得知,如何连接到B服务器(主机或IP地址)以及特定的端口,方法的名称等信息。
    1. A服务器上的应用,发起远程调用,方法的参数(序列化过了,因为网络协议是基于二进制的)通过底层网络协议和TCP传递到B服务器;
    2. B服务器收到请求后,反序列化,恢复为内存中的表达方式,然后找到对应的方法进行本地调用并返回(序列化返回值)给A服务器;
    3. A服务器收到B服务器的返回值,反序列化,然后交给A服务器上的应用进行处理。

二、为什么使用RPC

就是无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求,比如比如不同的系统间的通讯,甚至不同的组织间的通讯。由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用。

RPC的协议有很多,比如Java RMI、WebService的RPC风格、Hession、Thrift、REST API

猜你喜欢

转载自blog.csdn.net/weixin_43525116/article/details/85093584