使用 RMI 在 Java 中的两个服务器之间连接

Posted

技术标签:

【中文标题】使用 RMI 在 Java 中的两个服务器之间连接【英文标题】:Connection between two servers in Java using RMI 【发布时间】:2011-12-02 14:14:07 【问题描述】:

我正在使用 RMI 和 CORBA 创建一个简单的分布式系统。

我有一个主服务器,它重定向到另外两台服务器。

客户端向主服务器发送请求,主服务器重定向到其他两台服务器。

问题是我无法在主服务器和其他两个服务器之间建立连接。

我进行了一项研究,发现我需要在主服务器内有一个对象来获取来自客户端的请求并引用代理对象 1 和 2(实际上是另外两个服务器),我的实际问题是我应该如何创建这个代理对象(如果您给我一个示例或链接,我将不胜感激)。

【问题讨论】:

假设这是我重新标记的作业,如果不是请删除。 【参考方案1】:

假设您的Server1 实现了Interface1 并且您的Server2 实现了Interface2,现在为了连接到这两个服务器,您需要查找 并获得参考。

首先你需要注册Server1Server2,比如在Server1的main方法中你是这样做的:

Naming.rebind('server1', new MyServer());

然后为了在您的MainServer 中获得Server1 的引用,您将执行以下操作:

Interface1 server1 = Naming.lookup("rmi://localhost//server1);

有了一些基本的想法,你可以在source阅读完整的文档

【讨论】:

以上是关于使用 RMI 在 Java 中的两个服务器之间连接的主要内容,如果未能解决你的问题,请参考以下文章

回调中的 RMI 连接失败检测

深究Java中的RMI

RMI 服务导出器和 HttpInvoker 之间的区别?

使用JvisualVM无法连接linux远程服务器,错误无法使用service:jmx:rmi:// /jndi/rmi://ip:port/jmxrmi

java基础十一[远程部署的RMI](阅读Head First Java记录)

Java RMI 和 RPC 有啥区别?