阿里首席架构师科普RPC框架是什么

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)

 

常见的几种通信方式

1.远程数据共享(例如:共享远程文件,共享数据库等实现不同系统通信)

2.消息队列

3. RPC(远程过程调用)

 

序列化/反序列化

只有二​​进制数据才能在网络中传输,序列化和反序列化的定义是:

将对象转换成二进制流的过程叫做序列化,

将二进制流转换成对象的过程叫做反序列化。

 

的Java和.NET平台中常见的通信技术

Java的中支持的包括:

技术

简介

是否支持跨平台

Corbra

90年代产物,已被淘汰

不支持

RMI

EJB时代产物,已逐渐被淘汰

不支持

WebService

基于Http SOAP,效率低,逐渐被淘汰

支持

Hessain

基于HTTP,二进制序列化,效率高,使用广泛

支持

Rest(spring mvc等)

支持Http Rest,广泛应用于无线API,开放平台等

支持

JMS,MQ开源

的Java消息服务(消息中间件),使用广泛

支持

插座

基于Mina、Netty(NIO、AIO高效通信)

理论上支持


.NET中包括:

技术

简介

是否支持跨平台

WebService

基于Http SOAP,效率低,逐渐被WCF整合淘汰

支持

.NET Remoting

通信效率尚可,使用复杂,逐渐被WCF整合淘汰

不支持

WCF SOAP

整合了原有的web服务,通​​信效率低

支持

WCF NET.TCP

通信效率高,部分.NET项目内部服务在使用

不支持

WCF Rest

使用较少,已经被Web Api逐渐取代

支持

Web Api

支持Http Rest,广泛应用于无线API,开放平台等

支持

MSMQ,开源MQ

微软自己的消息中间件或者其他开源MQ

支持(MSMQ除外)

Hessain .NET

基于HTTP,二进制序列化,效率高,使用较少

支持

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

GRPC(Protobuffer)

Zero ICE

消息中间件

RPC框架的视频已经录制好,分享群619881427中免费下载学习,希望能够帮助有需要的程序员们。


你可能感兴趣的:(阿里首席架构师科普RPC框架是什么)