RMI 服务导出器和 HttpInvoker 之间的区别?

Posted

技术标签:

【中文标题】RMI 服务导出器和 HttpInvoker 之间的区别?【英文标题】:Difference between the RMI Service Exporter and the HttpInvoker? 【发布时间】:2012-09-29 14:21:47 【问题描述】:

RMI Service Exporter 和 HttpInvoker 有什么区别?

我知道 RMI 使用 RMI 作为底层通信技术和调用者标准 http post。还有其他值得注意的区别吗?

【问题讨论】:

【参考方案1】:

RMI 是一种标准的 Java 技术,原则上是可移植的。您可以轻松地与其他 Java 应用程序交互。

Spring HTTP 调用程序是一项专有技术。它们和 RMI 一样,使用 Java 序列化,但使用标准 HTTP 协议作为底层网络层。一方面,由于您仅限于其他 Spring 应用程序,因此可移植性较差。另一方面,与二进制 RMI 协议相比,使用标准 HTTP 协议可能被视为可移植。

选择:

RMI如果您需要跨 Java 应用程序的可移植性

HTTP 调用程序,如果您需要透明的网络传输、与防火墙完美配合等。

SOAP/REST Web 服务(如果您的 API 应该跨不同平台/客户端工作并且需要使用标准 HTTP 协议工作)

Thriftprotobuf 如果您需要高效且可移植的二进制协议

【讨论】:

以上是关于RMI 服务导出器和 HttpInvoker 之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

RMIHessianBurlapHttpinvokerWebService的比较

几种通讯协议的比较

使用远程服务

Spring远程服务(RPC)

java 远程调用 RPC

使用 RMI 在 Java 中的两个服务器之间连接