java - 使用java rmi激活系统的主要目的是什么?

标签 java rmi

首先,我正在阅读关于 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 的功能类似,rmiregistry 是服务器注册服务的地方。什么是 如果我们没有它会有什么不同?
  2. 这个机制是否包括服务器 自动恢复或故障转移功能?换句话说,我已经知道远程 rmi 服务器应该在 RMID 上注册,如果其中一个远程 rmi 服务器(可能在不同的机器上)崩溃了,RMID 可以检测到这个并触发这个远程 rmi 服务器弹跳吗?
  3. 是否可以通过使用 rmi API 来实现 rmid 的功能,以便在我定制的独立服务器中运行相同的功能,而不是使用 JDK RMID 工具。例如,工具 rmiregistry 可以替换为 rmi API LocateRegistry.createRegistry(regPort);

请指教或提供相关资料,在此先谢过了。

最佳答案

Regarding the doc, rmid is a router which specifies the remote rmi server and return the server information to the clients only once.

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

This looks like the similar function with rmiregistry

没有。

Does this mechanism include server auto-recovery or failover functionality?

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

Can rmid be running in the standalone server, and initialize via java API instead of rmi tools?

我不明白这个问题。

关于java - 使用java rmi激活系统的主要目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16134853/

相关文章:

java - 在Java中使用图像的问题

java - JMS消息重新传递

java - 如何解决java.security.AccessControlException

java - RMI 运行时何时断开客户端连接?

java - Facelet dataTable : method not found in backing bean, 尝试将实例发送回 bean

java - 在android中更快地下载给定url的图像

java - IOException : socket write error

java - 在与 RMIServer 不同的主机上运行 RMIRegistry

ssl - 无法使用 SSL RMI 启动 JMeter 4.0 客户端

java - 仅限本地主机的 RMI?