📜  RPC 和 RMI 的区别(1)

📅  最后修改于: 2023-12-03 15:19:51.294000             🧑  作者: Mango

RPC 和 RMI 的区别

远程过程调用(Remote Procedure Call,RPC)和远程方法调用(Remote Method Invocation,RMI)都是实现分布式系统通信的技术之一,但它们有一些不同点。

相似点
  • 都是实现远程过程调用的技术。
  • 都是基于 C/S 架构的开发模式。
  • 都可以跨语言使用。
不同点
  • 协议不同

    RPC 使用不同的协议进行通信,如HTTP、TCP 或 UDP等。而 RMI 往往使用轻量级协议 IIOP。

  • 调用方式不同

    RPC 是基于“地址+方法名”的方式进行调用,而 RMI 则是基于“对象”或“类+方法名”的方式进行调用,因此 RMI 更加面向对象。

  • 传输的数据类型不同

    RPC 通常使用 JSON 或二进制格式来传输数据,而 RMI 则使用 Java 序列化机制来进行数据传输,因此传输的数据类型需要实现 java.io.Serializable 接口。

  • 跨平台性不同

    RPC 是一种轻量级的通信方式,其兼容性非常好,可以跨平台使用,但 RMI 就比较局限了,一般只能在 Java 平台上使用。

  • 使用场景不同

    RPC 主要用于 C/S 架构的系统中,如微服务架构;而 RMI 主要用于基于 Java 的桌面应用程序和企业级应用程序中。

总结

RPC 和 RMI 都是实现远程调用的方式,它们都有自己适用的场景,我们需要根据具体的项目需求来选择合适的技术。有了这两种技术,我们就可以更加方便地实现分布式系统间的通信,提高整个系统的效率。