3

首先,我正在阅读关于rmi规范的java官方文档。 http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/index.html http://docs.oracle.com/javase/7/docs/platform/rmi/spec/rmi-activation2 .html

oracle网站列出的java rmi中的特性,除了rmi激活部分外,很容易理解。我已经阅读了rmi激活机制的详细文档,但对实际场景中的有用实践仍然一无所知。

因此,这些是几个真正让我困惑的问题如下:

  1. 关于文档,rmid 是一个路由器,它指定远程 rmi 服务器,并且只将服务器信息返回给客户端一次。这看起来与 rmiregistry 类似的功能是服务器注册服务的地方。如果我们没有它有什么区别?
  2. 此机制是否包括服务器自动恢复或故障转移功能?换句话说,我已经知道远程 rmi 服务器应该在 RMID 上注册,如果远程 rmi 服务器之一(可能在不同的机器上)崩溃了,RMID 可以检测到这个并触发这个远程 rmi 服务器弹跳吗?
  3. 是否可以通过使用 rmi API 来实现 rmid 的功能,以便在我定制的独立服务器中运行相同的功能,而不是使用 JDK RMID 工具。例如,工具rmiregistry可以替换为 rmi APILocateRegistry.createRegistry(regPort);

请告知或提供相关材料,先谢谢了。

4

1 回答 1

-1

关于文档,rmid 是一个路由器,它指定远程 rmi 服务器,并且只将服务器信息返回给客户端一次。

不,文档没有这么说。'rmid' 是一个守护进程,如果远程对象尚未运行,它会启动它。

这看起来像 rmiregistry 的类似功能

不。

此机制是否包括服务器自动恢复或故障转移功能?

如果包含已激活远程对象的 JVM 退出,或者已激活的远程对象自行取消激活,rmid 将按需重新启动它。

rmid 是否可以在独立服务器中运行,并通过 java API 而不是 rmi 工具进行初始化?

我不明白这个问题。

于 2013-04-21T22:06:30.423 回答