📅  最后修改于: 2023-12-03 15:19:51.294000             🧑  作者: Mango
远程过程调用(Remote Procedure Call,RPC)和远程方法调用(Remote Method Invocation,RMI)都是实现分布式系统通信的技术之一,但它们有一些不同点。
协议不同
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 都是实现远程调用的方式,它们都有自己适用的场景,我们需要根据具体的项目需求来选择合适的技术。有了这两种技术,我们就可以更加方便地实现分布式系统间的通信,提高整个系统的效率。