什么是RPC框架

摘要自:https://www.cnblogs.com/111testing/p/11296880.html

RPC 框架----- 远程过程调用协议RPC(Remote Procedure Call Protocol)-----允许像调用本地服务一样调用远程服务

1.分布式 ---促使-->RPC诞生

2. 产生原因:

 (1)本地函数调用:在同一个地址空间(即同一块内存),可以直接调用

 (2)分布式应用下:模仿B/S架构调用方式,开放Restful接口进行调用

 (3)代理模式:封装http请求。代理对象内部通过httpClient来实现RPC远程调用

3.总结:

在分布式系统中,能够像本地服务调用一样方便的调用远程服务。

4.实现:

(1)通过http实现

(2)通过Socket自己实现一套协议来实现

5.RPC框架:适用于大型网站,内部子系统、接口非常多的情况

(1)长连接,不必每次三次握手,减少网络开销

(2)注册中心,丰富的监控管理。对调用方无感知

(3)安全

dubbo/hessian:调用简单、参数返回值直接定义在jar包里,不需二次解析、轻量、dubbo注册中心,便于管理。

6.目的:远程过程调用,解耦服务。

动态代理模式,至于http协议,只是传输协议而已。

7. rpc = socket + 动态代理

8.调用过程:

(1)调用:A服务器发起调用

(2)参数序列化:调用方法的参数序列化(序列化或编组)为可以通信的二进制

(3)寻址:endpoint URI,UDDI服务上查找,RMI Registry的注册地址

  传输:TCP连接(socket)。 可以按需连接,调用结束后就断掉。也可以长连接,多个远程过程共享一个连接

(4)反序列化:在B服务器中回复为内存中的表达方式

(5)找到对应方法,进行本地调用。

(6)得到返回值

(7)返回值序列化

(8)传送给A服务器

(9)A收到返回值,再反序列化

(10)交给A中的应用

猜你喜欢

转载自www.cnblogs.com/ppybear/p/12461274.html