首先,我正在阅读有关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

甲骨文网站中列出的java rmi中的功能可以轻松理解,除了rmi激活部分。我已经阅读了有关rmi激活机制的详细文档,但对于实际情况下的有用实践仍然一无所知。

因此,以下几个问题确实使我感到困惑:


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


请提前告知或提供相关材料。

最佳答案

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


否。文档中没有这么说。 “ rmid”是一个守护程序,如果它尚未运行,它将启动远程对象。


  这看起来与rmiregistry类似的功能


没有。


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


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


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


我不明白这个问题。

10-06 06:05