阿里首席架构师科普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消息服务(消息中间件),使用广泛


支持


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中免费下载学习,希望能够帮助有需要的程序员们。

原文地址:http://blog.51cto.com/13655628/2130667

时间: 2024-10-14 17:08:02

阿里首席架构师科普RPC框架是什么的相关文章

看阿里首席架构师是如何选择并落地架构方案的

如何针对当前需求,选择合适的应用架构,如何面向未来,保证架构平滑过渡,这个是软件开发者,特别是架构师,都需要深入思考的问题. 无架构,不系统,架构是大型系统的关键.从形上看,架构是系统的骨架,支撑和链接各个部分:从神上看,架构是系统的灵魂,深刻体现业务本质. 架构可细分为业务架构.应用架构.技术架构,业务架构是战略,应用架构是战术,技术架构是装备.其中应用架构承上启下,一方面承接业务架构的落地,另一方面影响技术选型. 如何针对当前需求,选择合适的应用架构,如何面向未来,保证架构平滑过渡,这个是软

全球直播的罗胖跨年演讲背后技术支撑故事——罗辑思维首席架构师方圆访谈

导读:最近几年,知识付费型产品纷纷登上舞台,大家可能了解过最近的罗辑思维的跨年活动,或者也用过得到 app 来进行新知识学习.对于得到这样的产品,背后的技术挑战及经验外界了解不太多,恰逢罗辑思维首席架构师方圆作为中间件论坛的出品人参加 2017 年 12 月的 GIAC 大会,高可用架构对其进行了采访.方圆,罗辑思维首席架构师,曾先后在 Cisco,新浪微博从事基础架构研发工作.十多年一直专注于后端技术的研发,在消息通信,分布式存储等方向有着丰富的经验.个人技术兴趣广泛,主要专注 Go/Java

挖财首席架构师王福强:架构设计中的6大关键点

编者按:要开发出用户满意的软件并不是件容易的事,软件架构师必须全面把握各种各样的需求.权衡需求之间有可能的矛盾之处,分门别类地将不同需求一一满足.在UPYUN Open Talk 第二期"移动时代互联网金融架构趋势"的技术分享中,挖财首席架构师王福强带来了<挖财的互联网金融技术探索>,王福强重点分享了当前挖财架构设计中的6大关键点: 1. 系统层级分离 从大的体系来讲,挖财主要在做四个纬度的事情,第一个是会员中心,挖财有一套自己的会员体系,第二个是现金流,第三个是风控中心,

作为首席架构师,我是如何选择并落地架构方案的?

如何针对当前需求,选择合适的应用架构,如何面向未来,保证架构平滑过渡,这个是软件开发者,特别是架构师,都需要深入思考的问题. 本文首发于InfoQ垂直号「聊聊架构」,ID:archtime 无架构,不系统,架构是大型系统的关键.从形上看,架构是系统的骨架,支撑和链接各个部分:从神上看,架构是系统的灵魂,深刻体现业务本质. 架构可细分为业务架构.应用架构.技术架构,业务架构是战略,应用架构是战术,技术架构是装备.其中应用架构承上启下,一方面承接业务架构的落地,另一方面影响技术选型. 如何针对当前需

百度开放云首席架构师徐串:架构师必须理解程序员的痛

在2016中国云计算技术大会(CCTC 2016,专题报道)上,百度开放云首席架构师徐串发表了题为<企业IT基础架构在云端如何变革>的主题演讲,并接受CSDN记者专访,深入分享了他对架构及设计的认识,对架构师工作和技能的理解,以及百度开放云架构满足大数据和人工智能等不同应用需求的实践经验. 徐串表示,云计算环境下的架构,除了高吞吐.可扩展性.稳定性的需求,灵活性的实现也很重要.架构师的工作就是在各种矛盾之间坚持或妥协,如高吞吐和低延迟的矛盾,优雅架构和紧迫需求的矛盾.保证业务的需求,是设计架构

百度开放云首席架构师徐串:架构师对架构的理解 云 架构 架构师 百度

在 2016中国云计算技术大会 (CCTC 2016,专题报道)上,百度开放云首席架构师徐串发表了题为< 企业IT基础架构在云端如何变革 >的主题演讲,并接受CSDN记者专访,深入分享了他对架构及设计的认识,对架构师工作和技能的理解,以及百度开放云架构满足大数据和人工智能等不同应用需求的实践经验. 徐串表示,云计算环境下的架构,除了高吞吐.可扩展性.稳定性的需求,灵活性的实现也很重要.架构师的工作就是在各种矛盾之间坚持或妥协,如高吞吐和低延迟的矛盾,优雅架构和紧迫需求的矛盾.保证业务的需求,是

资深首席架构师眼中的架构应该是怎样的?

“架构的视角每个人都不一样,这位在eBay.携程.唯品会等平台型互联网公司都工作过的老司机就以平台架构视角和大家分享架构心得体会.一家之言,欢迎讨论. 本文首发于InfoQ垂直公众号「聊聊架构」,ID:archtime. 我对架构定义的理解 大概在7~8年前,我曾经有一个美国对口的架构师导师,他对我讲架构其实是发现利益相关者(stakeholder),然后解决他们的关注点(concerns),后来我读到一本书<软件系统架构:使用视点和视角与利益相关者合作>,里面提到的理念也是这样说:系统架构的

从普通Java程序员到阿里高级架构师,他用了6年!

6年间,一位架构师待过四大门户中的两户,已完成了工程师到架构师的蜕变.经手几款从零到一产品的开发和增涨,也亲身经历国內最大社交网络平台亿级数据流量和用户的架构设计及优化工作.在工作中思路清晰.尽职尽责,是同事们心目中出色 Problem Solver.参加工作时间:8 年服务公司:4 家(含四大门户中的两户)近期岗位:Java 架构师职场关键词:社交网络平台.高并发系统架构设计.技术团队管理.多款从零到一的产品城市! 问:介绍一下下你自身 答:我 2007 年本科大学毕业,前 2 年在一家传统式

阿里P7架构师:通往架构师路上的经验总结

困扰架构师日常问题 架构师应不应该写代码为什么别人的系统总是那么烂成为架构师最困难的门槛是什么?如何更高效的学习?面对目前流行的技术不知如何下手?一家公司待久了,过得很安逸,但跳槽时面试碰壁?觉得现在的技术基础感觉到很扎实,但就是自己的技术提升不上?觉得自己很牛B,一般需求都能搞定,但是所学的知识点没有系统化,很难在技术领域继续突破?现在觉得自己技术还可以,但就是薪资涨不上去? 以上这几点,做为开发人员的你们,有遇到过么?有为自己想过么?有细心仔细的去解决过这些问题么?有深刻的想过么?虽然这几个