快速弄懂RPC

这篇具有很好参考价值的文章主要介绍了快速弄懂RPC。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

常见的远程通信方式

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

远程调用

是指跨进程功能调用

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

RPC协议

远程过程调用

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

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

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

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

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

快速弄懂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!文章来源地址https://www.toymoban.com/news/detail-423478.html

到了这里,关于快速弄懂RPC的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【基于netty+zookeeper的rpc远程调用框架】首篇——缘起

    🐼 作者简介:一名大三在校生🎋 空有想法,没有实践 缘起 作为一名即将步入社会的大三学生,我深知一份优秀的简历对于求职的重要性。暑期实习作为大学生涯中的一个重要节点,不仅是锻炼自己、积累经验的宝贵机会,更是向未来雇主展示自己能力和潜力的关键时期。

    2024年04月26日
    浏览(43)
  • 3.RabbitMQ 架构以及 通信方式

    RabbitMQ的架构可以查看官方地址 可以看出RabbitMQ中主要分为三个角色: Publisher:消息的发布者,将消息发布到RabbitMQ中的Exchange RabbitMQ服务:Exchange接收Publisher的消息,并且根据Routes策略将消息转发到Queue中 Consumer:消息的消费者,监听Queue中的消息并进行消费 Routes:就是我们

    2024年02月11日
    浏览(27)
  • FPGA 和上位机常见的10种通信方式

    我把FPGA 和上位机常见的10种通信方式以及操作作了一个汇总,作为笔记分享 1. UART 串口通信 UART 是一种异步串行通信协议,最常用于将数据从一个设备传输到另一个设备。使用 UART 可以将 FPGA 中的数据通过串口输出到上位机,上位机使用串口调试助手进行接收和显示。操作方

    2024年02月14日
    浏览(25)
  • 单体架构 微服务架构 分布式 微服务通信方式 网关与nginx

    单体架构 优点:架构简单,维护成本低 缺点:各个模块耦合度太高,当对一个模块进行更新修改时,会影响到其他模块,要一起进行修改。当存在性能瓶颈的时候,需要对整个服务进行扩容,不能有针对性的扩容,如一个程序的主要功能时其中某个服务,要对其增加机器,

    2024年02月10日
    浏览(60)
  • 【理解ARM架构】不同方式点灯 | ARM架构简介 | 常见汇编指令 | C与汇编

    🐱作者:一只大喵咪1201 🐱专栏:《理解ARM架构》 🔥格言: 你只管努力,剩下的交给时间! 在学习C语言的时候,我们会写个 Hello World 程序来入门,当我们写ARM程序,也该有一个简单的程序引领我们入门,这个程序就是点亮LED。 查看原理图,确定控制LED的引脚: 如上图是

    2024年02月05日
    浏览(48)
  • Spring架构篇--2.7.2 远程通信基础--Netty原理--ServerBootstrap

    前言:已经初始化了NioEventLoopGroup 的boosGroup 和 workerGroup ,那么ServerBootstrap的作用是干嘛的呢 ,本文在Spring架构篇–2.7.1 远程通信基础–Netty原理–NioEventLoopGroup 之后继续进行探究 1 首先回顾下 nettt 的使用demo: 可以看到ServerBootstrap 的对象做了一系列的配置后最终 通过 bind

    2024年02月08日
    浏览(31)
  • 香农公式--通信的浅显理解--单纯只是为了弄懂功率和信道容量的关系

    笔记的目标:简单梳理功率和信道容量的关系 其中主要是为了弄明白论文《Spectrum Sharing in Vehicular Networks Based on Multi-Agent Reinforcement Learning》中的应用场景问题,即功率(信道增益)与信道容量的关系 对于应用场景和其他公式的分析见我的此篇文章 香农第二定理:信息传输率

    2024年02月06日
    浏览(51)
  • 【spring Cloud】微服务通信的三种方式RestTemplate、Feign远程调用与Dubbo的使用

    目录 一、通过RestTemplate调用微服务 二、通过Feign远程调用 三、Dubbo  分布式中的远程调用大概分为两种 RESTful接口  REST,即Representational State Transfer的缩写,如果一个架构符合REST原则,就称它为RESTful架构。 每一个URI代表一种资源; 客户端和服务器之间,传递这种资源的某种

    2024年04月11日
    浏览(48)
  • python3:四种常见方式从远程服务器下载文件(paramiko、requests、wget、urllib2)

    下载一个文件夹时,便可以使用这个方法, paramiko模块提供了ssh及sftp进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要先进行安装 默认会立即下载文件内容并保存到内存中,如果文件很大,会给内存造成压力 如果文件很大,会给

    2024年02月16日
    浏览(65)
  • 轻量级虚拟桌面基础架构(VDI) 从任何地方和任何设备进行安全快速访问,为混合云环境启用远程工作

    轻量级虚拟桌面基础架构(VDI) 从任何地方和任何设备进行安全快速访问,为混合云环境启用远程工作 交付具有成本效益且可扩展的 VDI 保证安全快速的虚拟应用程序和虚拟桌面 保护知识产权 支持全球合作 许多企业拥有混合计算基础架构,其中某些应用程序已迁移到云中,而

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包