阿里首席架构师科普RPC框架是什么
2019独角兽企业重金招聘Python工程师标准>>>
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消息服务(消息中间件),使用广泛 |
支持 |
Socket |
基于Mina、Netty(NIO、AIO高效通信) |
理论上支持 |
.NET中包括:
技术 |
简介 |
是否支持跨平台 |
WebService |
基于Http SOAP,效率低,逐渐被WCF整合淘汰 |
支持 |
.NET Remoting |
通信效率尚可,使用复杂,逐渐被WCF整合淘汰 |
不支持 |
WCF SOAP |
整合了原有的WebService,通信效率低 |
支持 |
WCF NET.TCP |
通信效率高,部分.NET项目内部服务在使用 |
不支持 |
WCF Rest |
使用较少,已经被Web Api逐渐取代 |
支持 |
Web Api |
支持Http Rest,广泛应用于无线API,开放平台等 |
支持 |
MSMQ、开源MQ |
微软自己的消息中间件或者其他开源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
GRpc(Protobuffer)
Zero ICE
消息中间件
RPC框架的视频已经录制好,分享群619881427中免费下载学习,希望能够帮助有需要的程序员们。
转载于:https://my.oschina.net/u/3779583/blog/1832358
阿里首席架构师科普RPC框架是什么相关推荐
- 阿里首席架构师,带你深入剖析企业IT转型之道和中台战略架构实战
本篇讲述了阿里巴巴的技术发展史,同时也是一部互联网技术架构的实践与发展史. 前言 为一个复杂的.高速发展的业务构建一个技术系统是一个巨大的挑战.阿里巴巴集团主要是以电子商务.支付为业务主体,这类系统都 ...
- 阿里P8架构师谈:主流RPC框架详解,以及与SOA、SOAP、REST的区别
什么是RPC RPC(Remote Procedure Call Protocol)--远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 简言之,RPC使 ...
- 阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别
内容大纲: 1.介绍Restful.SOAP.RPC.SOA以及微服务 2.重点谈谈SOA与微服务的区别 3.以及为什么要使用微服务架构 什么是Restful Restful是一种架构设计风格,提供了 ...
- 阿里云混合云首席架构师张晓丹:政企混合云技术架构的演进和发展
近日,阿里云混合云平台首席架构师张晓丹分享了 IT 架构技术,并对政企混合云技术架构的发展进行展望. 云计算经历了十几年的发展,从被认为是"新瓶装旧酒"而备受质疑,到广泛应用于消费 ...
- 阿里安全首席架构师钱磊:安全基建将成数字经济标配
"新基建"带来了新的发展机遇,也对网络空间安全带来了全新的挑战.两个多月新冠疫情磨砺,让加快发展数字化成为社会共识,以5G.数据中心等为代表的新型基础设施建设,也成为经济复苏的新路 ...
- 阿里云首席架构师唐洪:拥抱开源的云端更具生命力
近日, 国际开源界顶级会议LC3(LinuxCon + ContainerCon + CloudOpen)首次在国内举行,阿里云首席架构师唐洪作为特邀嘉宾出席并发表主题演讲.唐洪首先从一组数字开始,回 ...
- 阿里P7架构师要求:Web核心+开源框架+大型网站架构!含面试题目!
阿里P7技能(一):数据结构和算法: 常用数据结构:链表.堆与栈.哈希表等,常用的排序等. 掌握:精通 阿里P7技能(二):java高级 java相关的高级特性:JVM.多线程高并发.网络等. 掌握: ...
- 阿里P8架构师谈:Quartz调度框架详解、运用场景、与集群部署实践
以下将分别从Quartz架构简介.集群部署实践.Quartz监控.集群原理分析详解Quartz任务调度框架. Quartz简介 Quartz是Java领域最著名的开源任务调度工具,是一个任务调度框架, ...
- 阿里云首席架构师解读开源和云端结合的三大优势
本文讲的是阿里云首席架构师解读开源和云端结合的三大优势[IT168 云计算]6月20日,在LC3(LinuxCon+ContainerCon+CloudOpen)2017中国大会,在阿里云被宣布成为是 ...
最新文章
- ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)
- R语言层次聚类(hierarchical clustering):特征缩放、抽取hclust中的聚类簇(cutree函数从hclust对象中提取每个聚类簇的成员)、基于主成分分析的进行聚类结果可视化
- 使用pinctrl 和 gpio 子系统的字符设备驱动
- redis linux 文件位置,Linux下Redis的安装和部署
- JS线程与事件循环解析
- 企业微信_新建自建H5小程序应用及主页与菜单设置
- python anaconda安装不上_Anaconda3 2.4与python 3.5安装错误(程序条目未找到; Windows 10)...
- 服装关键点检测算法(CNN/STN)含(4点、6点以及8点)
- python max_Python max()
- SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 4)
- 基于trustonic tee使能MTK Widevine L1(SVP)
- springboot+vue旅行社旅游拼团系统java
- 双目视觉焦距_双目视觉成像原理
- uniapp swiper组件被内容撑开
- 直线拟合fitLine函数的用法
- nand flash基础时序
- 2022年 CSP-J1 CSP-S1 初赛 如何进行复习 如何做题
- 这有300+门刚刚开课的编程计算机科学免费课程大集合
- jQuery中的end()的用法与定义
- 大成都范围广告位招商