RMI原文
简介
Java的RMI远程调用是指,一个JVM中的代码可以通过网络实现远程调用另一个JVM的某个方法。RMI是Remote Method Invocation的缩写。提供服务的一方我们称之为服务器,而实现远程调用的一方我们称之为客户端。
远程调用的方法需要
- 一个继承了java.rmi.Remote的接口
1 | import java.rmi.Remote; |
- 一个实现了该接口并继承了UnicastRemoteObject的类
1 |
|
RMIServer需要创建Registry,并将上面的类实例化后绑定到一个地址。
1 | import java.rmi.Naming; |
RMIClient使用Naming.lookup
在Registry中找到HelloWorld的对象,这里也可以看出来接口的重要性: 虽然我们是在远程调用方法,但是我们还是需要实例知道有哪些方法,因此客户端也需要这个接口。
1 | import java.rmi.Naming; |
过程
客户端绑定一个Registry,并向里面请求hello的方法,然后Registry返回一个序列化后的hello的方法的对象,客户端反序列化该对象,发现该对象是一个远程对象,于是再与这个地址建立TCP连接 ,实现远程方法调用
Registry是管理远程对象的地方,可以理解为一个后台,但是我们无法直接通过客户端调用”后台”的接口,