3

RMI 服务导出器和 HttpInvoker 有什么区别?

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

4

1 回答 1

4

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

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

选择:

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

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

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

  • 如果您需要高效且可移植的二进制协议,请使用Thriftprotobuf

于 2012-09-29T14:39:03.733 回答