阿里首席架构师科普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中支持的包括:

1.jpg

.NET中包括:

2.jpg

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白课代表

百度又作妖,不能匿名下载分享链接?看看这些解决方案。

就这两天,百度网盘再次调整下载接口和规则,导致分享出来的文件链接如果不登录的话,不能下载,你说你一个网盘怎么这么不务正业,天天想着怎么不让用户使用呢!

1.1K30
来自专栏开源项目

Eclipse 常用的高效插件 | 码云周刊第 48 期

码云项目推荐 毫无疑问,每个 Java 开发人员都需要一个代码编辑器或 IDE 。目前主流的 Java IDE 有三个,分别是 NetBeans、Eclip...

36040
来自专栏ChaMd5安全团队

【荐】Web Application Penetration Testing中文译作

(英文原版地址:https://www.exploit-db.com/docs/english/44319-web-application-security-t...

18140
来自专栏EAWorld

微服务之服务调用与安全控制

近年来,大多数企业IT软件均在向微服务架构转型,由于微服务架构采用了更细粒度的分布式拆分,对于服务调用安全方面的问题更复杂,更需要重视,需要整体的系统化解决方案...

22830
来自专栏ImportSource

消费者驱动的微服务契约测试套件Spring Cloud Contract

在微服务架构下,你的服务可能由不同的团队提供和维护,在这种情况下,接口的开发和维护可能会带来一些问题,比如服务端调整架构或接口调整而对消费者不透明,导致接口调用...

434120
来自专栏FreeBuf

有工具了,如何快速发现Windows中毒(含工具下载)

本文是之前《没有外部工具,如何快速发现Windows中毒了》的姊妹篇,探讨Windows电脑感染多种典型病毒后,在没有专业杀毒软件情况下的快速检测方法。 Pro...

23190
来自专栏架构师小秘圈

微服务架构实施原理

34330
来自专栏企鹅号快讯

MITM6:用IPv6攻陷IPv4网络的工具

随着IPv6概念的提出,互联网上针对IPv6协议的使用也日渐增多,但即便如此IPv6在公司内部却并不受欢迎,很少会有公司使用IPv6。然而,大多数公司可能都忽略...

42670
来自专栏Java后端技术

启动Eclipse弹出:Failed to load JavaHL Library 错误框的解决办法

  eclipse安装完svn插件以后,在启动时出现:Failed to load JavaHL Library.  These are the errors ...

11020
来自专栏用户2442861的专栏

make makefile cmake qmake都是什么,有什么区别?

作者:玟清 链接:https://www.zhihu.com/question/27455963/answer/36722992 来源:知乎 著作权归作者...

14910

扫码关注云+社区

领取腾讯云代金券