RMI注册表是什么?

56

RMI注册表是什么?它是用来做什么的?

4个回答

32

RMI注册表基本上是一个可以让服务器注册提供的服务并让客户端查询这些服务的地方。详见Java RMI简介。摘录如下:

图1展示了使用RMI时客户端所建立的连接。首先,客户端必须联系RMI注册表,并请求所需服务的名称。开发人员B不知道RMI服务的确切位置,但他知道足够联系到开发人员A的注册表。这将指引他找到所需调用的服务。


2
这里还有一个有趣的地方可以学习更多关于Java RMI:http://docs.oracle.com/javase/tutorial/rmi/index.html - LuckyLuc
@LuckyLuc同意。这不仅是一个有趣的地方,而且是一个更好的地方。任意的互联网垃圾不应该在官方参考资料之前被引用,当然也不应该在规范性参考资料如RMI规范之前被引用。 - user207421
所以每个程序只有一个RMI注册表,但可以有多个服务器。这是正确的吗? - CodyBugstein

8

RMI注册表是RMI服务器和客户端之间的中间人。服务器将其服务“注册”到注册表中,因此RMI Registry可以作为许多服务器/服务的“目录”。客户端不需要知道各个服务器的位置,在RMI注册表上查找它所需的服务。注册表作为命名目录返回适当的句柄给客户端以调用方法。

在Google上搜索,有大量关于RMI的信息可用。


2

Java的远程方法调用(RMI)注册表本质上是一个目录服务。

远程对象注册表是一种引导命名服务,用于将远程对象绑定到名称。然后,本地和远程主机上的客户端可以查找远程对象并进行远程方法调用。(文档

您可以使用RMI或JNDI在rmi注册表中远程绑定和查找对象。

这是代理设计模式的一个众所周知的用例。 RMI服务器在RMI注册表上注册对象(本质上是存根)。 远程客户端查找这些存根并调用其方法。 在幕后,要调用的方法及其参数被序列化并发送到实际具有实现的RMI服务器。 RMI服务器(骨架代码)反序列化请求,调用实际方法,收集结果,对其进行反序列化并将其发送回客户端(存根)。 存根反序列化结果并将其返回给调用此方法的代码。


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接