当前位置: 首页 > news >正文

快速弄懂RPC

快速弄懂RPC

  • 常见的远程通信方式
  • 远程调用
  • RPC协议
  • RPC的运用场景和优势

常见的远程通信方式

基于REST架构的HTTP协议以及基于RPC协议的RPC框架。

远程调用

是指跨进程功能调用

跨进程可以理解为一个计算机节点的多个进程或者多个计算机节点的多个进程

RPC协议

远程过程调用

他是一种通过网络从远程计算机程序上请求服务,而不需要去了解底层网络技术的一种协议。凡是该协议的框架,我们都可以称为RPC框架。

通俗的理解就是A计算机提供一个服务,B计算机可以通过调用本地服务一样去调用A计算机提供的一个服务。这就是RPC协议的一个功能。

要实现RPC,需要通过网络进行数据传输,并且对调用的过程进行封装

现在比较流行的RPC框架都会采用TCP协议作为底层传输协议。当然其他协议也是可以的,比如UDP

RPC协议强调的是过程调用,调用的过程对用户而言是透明的,用户不需要关心调用的细节。可以像调用本地服务一样去调用远程服务。

在这里插入图片描述
一个完整的RPC协议包含了四个核心组件,分别是Client、Server、Client Stub以及Server Stub。

第一个客户端Client表示服务的调用方,第二个服务端Server是真正服务提供者,第三个是客户端存根叫Client Stub存放服务端的地址信息,再将客户端的请求参数打包成网络消息,然后通过网络远程发送给服务方。第四个是服务端的存根叫Server Stub接收客户端发送过来的消息,将消息进行反序列化,并调用本地方法。

目前比较流行的开源RPC框架,有Google的gRPC, facebook的Thrift,阿里巴巴的Dubbo。

RPC的运用场景和优势

在开发电商系统的时候,随着业务越来越复杂,走分布式架构这个方向是绝大部分的互联网企业必然的一个选择。

分布式架构落地的里程碑应该是阿里的去IOE运动的成功,让互联网企业看到如何利用更少的软硬件成本来支撑海量的用户。分布式架构的核心就是利用多个普通的计算机节点组成一个庞大的复杂计算网络,提供一个高性能以及高并发的能力支撑。

在分布式架构中,原本单体应用被拆分成多个独立部署的服务,分布在计算机网络上。这些服务必然需要网络进行数据的通信和交付。而RPC框架就是解决在分布式架构中的各个业务服务彼此的网络通信的一个方案。

一般来说,RPC服务主要是针对大型的企业,也就是说当我们的业务复杂度以及用户量都比较高的时候,需要对服务进行解耦,从而达到部署性强、部署灵活的一个目的。

一般情况下,市面上的开源RPC框架除了提供基础的远程通信功能以外,还会在性能的消耗上、传输效率上、服务治理等方面做出很多的一些优化和设计。比如说阿里开源的RPC框架Dubbo就提供了非常丰富的服务治理的一些功能。

参考资料:【Java面试】白嫖福利,5分钟带你快速弄懂RPC!

http://www.lryc.cn/news/61163.html

相关文章:

  • ONVIF协议介绍
  • AI大模型内卷加剧,商汤凭什么卷进来
  • 企业网络安全漏洞分析及其解决_kaic
  • Docker网络模式与cgroups资源控制
  • Linux/C++:基于TCP协议实现网络版本计算器(自定义应用层协议)
  • 并发之阻塞队列
  • nodejs+vue 智能餐厅菜品厨位分配管理系统
  • MySQL NULL 值
  • Python 机器人学习手册:1~5
  • OpenCV(14)-OpenCV4.0中文文档学习2(补充)
  • 八、express框架解析
  • SpringBoot整合接口管理工具Swagger
  • 50+常用工具函数之xijs更新指南(v1.2.3)
  • 【DAY42】vue学习
  • JavaScript小记——事件
  • Windows逆向安全(一)之基础知识(八)
  • PyCharm+PyQt5+pyinstaller打包labelImg.exe
  • JavaScript里实现继承的几种方式
  • 前端:运用HTML+CSS+JavaScript实现迷宫游戏
  • NoSQL数据库简介
  • 面试马铭泽
  • 查看AWS S3的目录
  • 分布式系统概念和设计-操作系统中的支持和设计
  • 【redis】bitmap、hyperloglog、GEO案例
  • 第二章:集合与区间
  • Mysql8.0版本安装
  • 开放式耳机真的比封闭式强很多吗?推荐几款主流的开放式耳机
  • Doris(7):数据导入(Load)之Routine Load
  • linux 安装php8.1 ZipArchive和libzip最新版扩展安装
  • 大数据 | 实验一:大数据系统基本实验 | 熟悉常用的HBase操作