【发布时间】:2011-03-24 13:06:00
【问题描述】:
好的,我知道了如何使用 RMI 将单例服务器对象绑定到一个众所周知的名称,以便其他 JVM 可以找到它。
假设我有许多进程,每个进程都运行一个 JVM,每个进程都创建一个支持 FooRemote 接口的对象,我希望通过 RMI 公开它。每个进程都有一个不可预测的生命周期,它对应于某些东西,无论是来自用户输入,还是来自资源的可用性。
如何在不发生命名冲突的情况下绑定它们?使用 JNDI 会有帮助吗?
实际上,我希望做的是拥有一个相似对象池,每个对象都位于不同的 JVM 上(这样做的原因很重要,但超出了这个问题的范围)。我需要一个客户端能够枚举哪些对象可用,并选择一个进行进一步交互。
(我强调单独的 JVM 的原因是,如果它们都在同一个 JVM 中,我可以只使用一个单例管理器来处理组池,并让所有组实例都可以通过管理器访问。但我可以'如果组池由不同 JVM 中的独立实例组成,则不要这样做。)
【问题讨论】: