温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

RPC概念是什么

发布时间:2021-12-15 14:49:47 来源:亿速云 阅读:147 作者:iii 栏目:云计算

这篇文章主要讲解了“RPC概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“RPC概念是什么”吧!

一、RPC概念

Dubbo服务是一个RPC框架,那我们首先就要先理解什么叫做RPC, Remote Procedure Call 即远程过程调用。

远程过程调用相对的是本地过程调用,本地过程调用就不用说了,简单理解成本地方法调用函数即可,而远程调用是指调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数。而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。

RPC的基本架构图如下:

RPC概念是什么

 RPC框架就是图中的client stub 和说server stub,服务间要相互调用,需要先建立连接。当客户端调用client stub,可能需要传递参数,而在网络间传递,需要进行序列化,序列化完全后将需要调用的消息发送给server stub,服务端收到信息后,先反序列化,然后再调用本地服务,调用完本地服务后,返回处理结果,结果也需要进行序列化,序列化完成之后再返回消息,而client stub 收到消息,也需要再次反序列化,再转换成调用结果,这就是一个完整的RPC过程,如图所示:

RPC概念是什么

RPC 框架就是要实现像那小助手一样的东西,目的就是让我们使用远程调用像本地调用一样简单方便,并且解决一些远程调用会发生的一些问题 ,对于我们来说是无感知的。

在示例图中我们也可以看出,RPC的核心模块就是通讯,序列化

那如果让我们来设计一个RPC框架,我们的设计思路应该是怎么样的呢?

首先从服务调用者开始,这是一个消费方,我们要消费一个服务,那么这种服务应该是一个接口形式的,这个接口一般是一个公用jar包来定义,当我知道需要调用什么接口时,具体的实现不需要清楚,这些都应该是框架代理来做的,我只需要带接口和参数即可。

消费方不需要知道其中细节,不需要知道要调用那台服务器上的服务,这个时候应该有一个注册中心,这个注册中心有点类似公司大楼的前台物业,他负责指引来客人找到找入驻本栋大楼的公司,每个公司类似服务提供者,公司入驻大大楼后,将自己的楼层和门牌号告诉前台,前台把公司的情况贴在前台指引,那么当有人要找到公司提供服务时,可以直接通过门牌找到想要去的公司,而这个公司搬走后,前台物业又将此公司去掉,消费者需要的服务器是可以直接找到对应公司。

当然,如果你直接告诉了客户你的具体位置,那么客户可以不需要去注册中心找你,也就是注册中心可以不需要

那作为服务提供者,你要告诉别人你公司能提供的服务器,去实现对应的接口 ,然后暴露出去,也就是去向注册中心注册自己,暴露自己所能提供的服务。 然后有消费者请求过来需要处理,提供者需要用和消费者协商好的协议来处理这个请求,然后做反序列化

面对众多的服务,精细化的监控和方便的运维必不可少。 这个时候我们需要监控运维 ,也就是监控中心,当然如果你要这么莽,就是不需要监控,当然也是可以的。

到此,我们能想到的架构就是如此,接下里我们就来看看dubbo设计(当然,我是通过实际架构反推出来,手动狗头)

二、Dubbo 核心概念

Dubbo 是阿里巴巴 2011年开源的一个基于 Java 的 RPC 框架,中间沉寂了一段时间,不过其他一些企业还在用 Dubbo 并自己做了扩展,比如当当网的 Dubbox,还有网易考拉的 Dubbok。

在 2018 年和 Dubbox 进行了合并,并且进入 Apache 孵化器,在 2019 年正式成为 Apache 顶级项目。

学习一门技术,如果有官网的话我们尽量从官网上学习:首先我们要知道Dubbo有哪些特性:

  • 面向接口代理的高性能RPC调用: 提供高性能的基于代理的远程调用能力,服务以接口为粒度,为开发者屏蔽远程调用底层细节。

  • 智能负载均衡: 内置多种负载均衡策略,智能感知下游节点健康状况,显著减少调用延迟,提高系统吞吐量。

  • 服务自动注册与发现: 支持多种注册中心服务,服务实例上下线实时感知。

  • 高度可扩展能力: 遵循微内核+插件的设计原则,所有核心能力如Protocol、Transport、Ser.........

感谢各位的阅读,以上就是“RPC概念是什么”的内容了,经过本文的学习后,相信大家对RPC概念是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rpc
AI