Java中RMI的使用方法

发布时间:2021-06-25 14:10:12 作者:chen
来源:亿速云 阅读:173

本篇内容介绍了“Java中RMI的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  RMI 介绍

  RMI (Remote Method Invocation) 模型是一种分布式对象应用,使用 RMI 技术可以使一个 JVM 中的对象,调用另一个 JVM 中的对象方法并获取调用结果。这里的另一个 JVM 可以在同一台计算机也可以是远程计算机。因此,RMI 意味着需要一个 Server 端和一个 Client 端。

  Server 端通常会创建一个对象,并使之可以被远程访问。

  这个对象被称为远程对象。

  Server 端需要注册这个对象可以被 Client 远程访问。

  Client 端调用可以被远程访问的对象上的方法,Client 端就可以和 Server 端进行通信并相互传递信息。

  说到这里,是不是发现使用 RMI 在构建一个分布式应用时十分方便,它和 RPC 一样可以实现分布式应用之间的互相通信,甚至和现在的微服务思想都十分类似。

  RMI 工作原理

  正所谓 “知其然知其所以然”,在开始编写 RMI 代码之前,有必要了解一下 RMI 的工作原理,RMI 中 Client 端是和 Server 端是如何通信的呢?

  下图的可以帮助我们理解RMI 的工作流程。

  Client 端有一个被称 Stub 的东西,有时也会被成为存根,它是 RMI Client 的代理对象,Stub 的主要功能是请求远程方法时构造一个信息块,RMI 协议会把这个信息块发送给 Server 端。

  这个信息块由几个部分组成:

  远程对象标识符。

  调用的方法描述。

  编组后的参数值(RMI协议中使用的是对象序列化)。

  既然 Client 端有一个 Stub 可以构造信息块发送给 Server 端,那么 Server 端必定会有一个接收这个信息快的对象,称为 Skeleton 。

  它主要的工作是:

  解析信息快中的调用对象标识符和方法描述,在 Server 端调用具体的对象方法。

  取得调用的返回值或者异常值。

  把返回值进行编组,返回给客户端 Stub.

  到这里,一次从 Client 端对 Server 端的调用结果就可以获取到了。

  RMI 开发

  通过上面的介绍,知道了 RMI 的概念以及 RMI 的工作原理,下面介绍 RMI 的开发流程。

  这里会通过一个场景进行演示,假设 Client 端需要查询用户信息,而用户信息存在于 Server 端,所以在 Server 端开放了 RMI 协议接口供客户端调用查询。

  RMI Server

  Server 端主要是构建一个可以被传输的类 User,一个可以被远程访问的类 UserService,同时这个对象要注册到 RMI 开放给客户端使用。

  定义服务器接口(需要继承 Remote 类,方法需要抛出 RemoteException)。

  User 对象在步骤 3 中定义。

  实现服务器接口(需要继承 UnicastRemoteObject 类,实现定义的接口)。

  定义传输的对象,传输的对象需要实现序列化(Serializable)接口。

  需要传输的类一定要实现序列化接口,不然传输时会报错。IDEA 中如何生成 serialVersionUID,在文章末尾也附上了简单教程。郑州那个妇科医院好www.qudouwy.com

  注册( rmiregistry)远程对象,并启动服务端程序。

  服务端绑定了 UserService 对象作为远程访问的对象,启动时端口设置为 1900。

  定义传输的对象,传输的对象需要实现序列化(Serializable)接口。

  需要传输的类一定要实现序列化接口,不然传输时会报错。IDEA 中如何生成 serialVersionUID,在文章末尾也附上了简单教程。

  注册( rmiregistry)远程对象,并启动服务端程序。

  服务端绑定了 UserService 对象作为远程访问的对象,启动时端口设置为 1900。

  RMI Client

  相比 Server 端,Client 端就简单的多。直接引入可远程访问和需要传输的类,通过端口和 Server 端绑定的地址,就可以发起一次调用。

“Java中RMI的使用方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. Java RMI是什么
  2. Java RMI的使用方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java rmi

上一篇:PHP如何实现抓取迅雷VIP账号

下一篇:React Hooks的原理是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》