假设我的系统中有 3 个节点:node1、node2、node3,并且我在所有 3 个节点上都有远程对象。我的问题是这样的:
我可以在节点 1 上运行一个注册表实例并让它管理 3 个节点上的所有对象,还是每个节点都需要自己的注册表实例?即一个注册表可以只管理自己机器上的对象,还是也可以管理其他机器上的对象?
最佳答案
每个导出远程对象的主机都必须有自己的注册表。您只能从与注册表位于同一主机中运行的进程执行 Registry.bind()
。这是一项安全措施。
[有办法解决这个问题,但是......]
或者您可以改用 LDAP 服务器,并使用 JNDI 进行绑定(bind)和查找,而不是 Naming
或 LocateRegistry。
关于多台机器上的 Java RMI 注册表对象管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27024318/