6.2 RPC和REST
目录:
-
6.2.1 RPC
-
6.2.2 REST
REST近年来成为最主流的Web服务器设计模型,已经普遍取代了基于SOAP和WSDL的接口设计
6.2.1 RPC
6.2.1.1 RPC概念
RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。
RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:
应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。
远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。
通信框架:MINA 和 Netty。目前流行的开源 RPC 框架还是比较多的,有阿里巴巴的 Dubbo、Facebook 的 Thrift、Google 的gRPC、Twitter 的 Finagle 等
简单解释:
RPC=SOAP+WSDL+UDDI
6.2.1.2 RPC框架
在一个典型 RPC 的使用场景中,包含了服务发现、负载、容错、网络传输、序列化等组件,其中“RPC协议”就指明了程序如何进行网络传输和序列化。
例如阿里Dubbo的设计框架图,分层清晰,功能复杂: