分布式通信框架-RMI原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/R_s_x/article/details/90052084

文章目录

什么是RPC

RPC (Remote Procedure Call,远程过程调用),一般用来实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地系统资源一样,通过网络传输去访问远端系统资源,对于客户端来说,传输层使用什么协议,系列化、反序列化都是透明的。
在架构演变过程中,随着网站系统用户量的增加、业务功能的扩展,由集中式走向分布式,应用被拆分,在解决个服务之间如何进行远程通信由此产生了RPC技术。
RPC框架:
RMI(JEMP)
SOAP(webservice/axis/cxf)
thrift
grpc
dubbo

Java RMI

RMI(remote method invocation,远程方法调用)是一种用于远程过程调用的应用程序编程接口,是纯Java的网络分布式应用系统的核心解决方案之一。使用Java远程消息交换协议JRMP (Java Remote Messageing Protocol)进行通信。

RMI采用代理来负责客户与远程对象之间通过Scoket进行通信的细节。RMI为远程对象分别生成客户端(存根、Stub)和服务器端代理(骨架,Skeleton)。
在这里插入图片描述
Stub发送给服务器的信息有:

  • 被访问的远程对象的名字
  • 被调用的方法的描述
  • 序列化的字节序列

Skeleton对象接收到请求后,执行以下操作:

  • 把参数反序列化
  • 定位要访问的远程对象
  • 调用远程对象的方法
  • 获取方法的返回值或异常,在进行序列化
  • 将信息返回客户端

RMI应用的运行过程:
在这里插入图片描述




RMI的基本原理通过时序图很清晰的就能理解,但其具体实现还需要通过分析源码更加直接的深入了解,目前我在用的是Dubbo,基本原理相似,实现更复杂和灵活,适用于不同的应用场景。持续学习吧~

猜你喜欢

转载自blog.csdn.net/R_s_x/article/details/90052084