大家好,我是IT修真院深圳分院的学员,一枚正直善良的JAVA程序员。今天给大家带来的是0
讲讲Rmi
1.背景介绍
RMI(Remote Method Invocation)是JAVA早期版本(JDK 1.1)提供的分布式应用解决方案,它作为重要的API被广泛的应用在EJB中。
随着互联网应用的发展,分布式处理任务也随之复杂起 来,WebService也得到普遍的推广和应用。
2.知识剖析
RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。
可以用此方法调用的任何对象必须实现该远程接口。
调用这样一个对象时,其参数为 "marshalled" 并将其从本地虚拟机发送到远程虚拟机(该远程虚拟机的参数为 "unmarshalled")上。
该方法终止时,将编组来自远程机的结果并将结果发送到调用方的虚拟机。
如果方法调用导致抛出异常,则该异常将指示给调用方。
3.常见问题
1.如何搭建一个RMI服务?
4.解决方案
如何搭建一个RMI服务的过程分为以下7步;
1,创建远程方法接口,该接口必须继承自Remote接口
2,创建远程方法接口实现类,该实现类必须继承UnicastRemoteObject类,并且抛出RemoteException
3.创建服务器程序,在rmiregistry注册表中注册远程对象;
4.创建客户端程序,负责定位远程对象,并且调用远程方法。
Spring中如何使用RMI
在服务端,可以通过Spring的org.springframework.remoting.rmi.RmiServiceExporter可以暴露你的服务;
在客户端,通过org.springframework.remoting.rmi.RmiProxyFactoryBean可以使用服务端暴露的服务,非常方便。
5.编码实战
6.更多讨论
7.参考文献
文章链接:https://blog.csdn.net/xiaoyaoyulinger/article/details/51452674
文章作者:子不语xuan
文章链接:https://blog.csdn.net/lmy86263/article/details/72594760
文章作者:lmy86263
8.更多讨论
1.RMI有什么优点?
优点:避免重复造轮子;
缺点:调用过程很慢,而且该过程是不可靠的,容易发生不可预料的错误,比如网络错误等;
2.RMI中 如何随时改变调用的IP?
在服务端分别向不同的IP注册服务,然后客户端根据需要,随时加载所需要bean。这个过程是在程序运行的时候完成的,而不需要程序重新启动。
3.RMI的框架有哪些?
RMI
RMI是个典型的为java定制的远程通信协议, 我们都知道,在single vm中,我们能够通过直接调用java object instance来实现通信,那么在远程通信时,假设也能依照这样的方式当然是最好了。这样的远程通信的机制成为RPC(RemoteProcedure Call),RMI正是朝着这个目标而诞生的。
传输的标准格式是Java Object Stream;基于Java串行化机制将请求的Java Object信息转化为流。传输协议是Socket。
XML-RPC
XML-RPC也是一种和RMI类似的远程调用的协议,它和RMI的不同之处在于它以标准的xml格式来定义请求的信息(请求的对象、方法、參数 等),这种优点是在跨语言通讯的时候也能够使用。所以RMI与RPC的差别之中的一个是RPC是跨语言的。
传输的标准格式是XML。将XML转化为流。传输协议是HTTP。
Binary-RPC
Binary-RPC和XML-RPC是差点儿相同,不同之处仅在于传输的标准格式由XML转为了二进制的格式。
传输的标准格式是二进制文件。将二进制文件转化为传输的流。传输协议是HTTP。
SOAP
SOAP(SimpleObject Access Protocol),是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议,能够觉得SOAP是XML RPC的高级版。两者的原理全然同样。都是http+XML,不同的仅在于两者定义的XML规范不同。SOAP也是Webservice採用的服务调用协 议标准。
CORBA
Common Object Request BrokerArchitecture(公用对象请求代理[调度]程序体系结构),是一组用来定义“分布式对象系统”的标准,由OMG(Object Menagement Group)作为发起和标准制定单位。CORBA的目的是定义一套协议,符合这个协议的对象能够互相交互,不论它们是用什么样的语言写的。不论它们执行于 什么样的机器和操作系统。CORBA是个类似于SOA的体系架构。涵盖可选的远程通信协议,但其本身不能列入通信协议。
JMS
JMS。是实现java领域远程通信的一种手段和方法。基于JMS实现远程通信时和RPC是不同的。尽管能够做到RPC的效果,但由于不是从协议 级别定义的。因此我们不觉得JMS是个RPC协议,但它确实是个远程通信协议,在其它的语言体系中也存在着类似JMS的东西,能够统一的将这类机制称为消 息机制。而消息机制呢,一般是高并发、分布式领域推荐的一种通信机制,这里的主要一个问题是容错。JMS注重的是消息交换,RMI注重的是对象方法调用,所以目的不同。JMS大多时候是异步的松耦合,RMI大多时候是同步的紧耦合。
JMS规定的传输格式是Message,将參数信息放入Message中,传输协议不限。基于JMS也是经常使用的实现远程异步调用的方法之中的一个。
PPT链接:戳这里看PPT
腾讯视频:腾讯视频
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧
网友评论