RPC
RPC全称为Remote Procedure Call“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场景极其广泛,实现的方式也各式各样。
HTTP协议的(SOAP(XML)、Rest(JSON)Hessian(Binary
TCP协议的(通常会借助Mina、Netty等
(例如Java平台的RMI、.NET平台Remoting)
HTTP Rest、Thrift等
RPC)
MQ、异步RPC)
常见的几种通信方式
/
只有二进制数据才能在网络中传输,序列化和反序列化的定义是:
Java.NET
Java
技术 | 简介 | 是否支持跨平台 |
Corbra | 90 | 不支持 |
RMI | EJB | 不支持 |
WebService | 基于Http SOAP | 支持 |
Hessain | 基于Http | 支持 |
Restspring mvc | 支持Http RestAPI | 支持 |
JMSMQ | Java | 支持 |
Socket | 基于MinaNettyNIOAIO | 理论上支持 |
.NET
技术 | 简介 | 是否支持跨平台 |
WebService | 基于Http SOAPWCF | 支持 |
.NET Remoting | 通信效率尚可,使用复杂,逐渐被WCF | 不支持 |
WCF SOAP | 整合了原有的WebService | 支持 |
WCF NET.TCP | 通信效率高,部分.NET | 不支持 |
WCF Rest | 使用较少,已经被Web Api | 支持 |
Web Api | 支持Http RestAPI | 支持 |
MSMQMQ | 微软自己的消息中间件或者其他开源MQ | 支持(MSMQ |
Hessain .NET | 基于Http | 支持 |
Socket | 通过Socket | 理论上支持 |
RPC
应用级的服务框架:
Dubbo/Dubbox
ZeroICE
GRpc
Spring Boot/Spring Cloud
基础通信框架:
Protocol Buffers
Thrift
远程通信协议:
RMI
Socket
SOAP(HTTP XML)
REST(HTTP JSON)
RPC
性能
RPC
1./
2.网络协议,网络模型,线程模型等
安全
RPC
跨平台
跨不同的操作系统,不同的编程语言和平台。
RPC
SOAP WebService
Hessian
HTTP Rest
Thrift
GRpcProtobuffer
Zero ICE
消息中间件