什么是RMI,什么是RPC,两者之间的区别是什么?

 

这里是修真院后端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析后端知识/技能,本篇分享的是:

【什么是RMI,什么是RPC,两者之间的区别是什么?】

Spring RMI

 

RMI全称是Remote Method Invocation-远程方法调用,是纯Java的网络分布式应用系统的核心解决方案之一。Java RMI 支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。

 

RMI目前使用Java远程消息交换协议JRMP进行通信。由于JRMP是专为Java对象制定的,用Java RMI开发的应用系统可以部署在任何支持JRE的平台上。但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。
 

 

知识剖析

 

 

 

一个正常工作的RMI系统由下面几个部分组成:

 

1·远程服务的接口定义

 

2·远程服务接口的具体实现
3·桩(Stub)和框架(Skeleton)文件
4·一个运行远程服务的服务器
5·一个RMI命名服务,它允许客户端去发现这个远程服务
6·类文件的提供者(一个HTTP或者FTP服务器)
7·一个需要这个远程服务的客户端程序

 

RMI的主要优点:
1. RMI是Java编写的, 具有 “编写一次,到处运行 ” 的特性。任何基于RMI的系统均可100%地移植到 任何Java虚拟机上
2. 面向对象:RMI可将完整的对象作为参数和返回值进行传递直接通过网络传输对象数据。
3.可移动属性:RMI可将属性从客户机移动到服务器,或者从服务器移到客户机。
4.设计方式:对象传递功能使您可以在分布式计算中充分利用面向对象技术的强大功能。
5.安 全:RMI使用Java内置的安全机制保证下载执行程序时用户系统的安全。
分布式和集群
分布式:一个业务分拆多个子业务,部署在不同的服务器上。集群:同一个业务,部署在多个服务器上

 

常见问题

 

1. 如何使用Spring RMI发布服务

 

2. 打包问题
 

 

解决方案

 

1. 服务端使用Spring 配置来注入RmiServiceExporter对象来发布服务
 

 

2. 使用 maven-shade-plugin 将其打包为jar文件.

 

 

 

编码实战

 

 

 

扩展思考

 

 

 

 

 

参考文献

 

RMI 说明: http://www.cnblogs.com/xt0810/p/3640167.html
RMI 优点: https://blog.csdn.net/tornado886/article/details/4540805

 

更多讨论

 

rmi的使用有什么坑吗:

 

上传服务器的时候一定要设置系统对外的ip是服务器外网的IP,不然会出现链接不上的问题。

 

rmi有什么作用:

 

上面已经讲的很清楚了,符合现代编程的理念,RMI 支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。

 

spring rmi是唯一一个封装的框架吗:

 

实际上不止spring一个封装了rmi的框架,用的比较多的可能还是阿里的dubbo。

 

 

PPT链接 视频链接

 

更多内容,可以加入IT交流群565734203与大家一起讨论交流

这里是技能树·IT修真院:https://www.jnshu.com,初学者转行到互联网的聚集地

你可能感兴趣的:(JAVA后端,视频教程,修真院Java小课堂)