用简单的方式去描述RPC原理

article/2025/9/26 4:39:47

        接下来我们就讲RPC:远程过程调用。其实RPC仅仅是一个概念,RPC没有协议没有框架,平时我们说的RPC框架其实是简称,很多人被带偏了,以为RPC是一个协议或者是框架,所以你以后如果听到RPC框架,你要立马意识到,它的含义是:符合RPC概念的一个技术框架。实现的框架有rmi、dubbo、Hessian

        那什么是RPC?一句话:像调用本地方法一样调用远程服务上的方法。

        下面我们举例说明,有一个集群中的应用偶尔计算大数的阶乘,服务器根本受不了(下图1),如果升级服务器那就要升级几十台,经费不够,所以有人提出来,买一台性能超级优秀的服务器,将有压力的算法独立出一个应用放到这台服务器,接收http请求,计算完成后返回,这样问题就解决了(下图2)。

 

             但是时间长了研发发现,每次有个新的高压力方法就需要在应用侧添加一个http请求代码块,服务端要加一个接收代码块,它们行为逻辑基本是一样的(下图红色),并且传递参数也非常麻烦(下图蓝色,最简单的例子就是:调用方法传递了一个pojo对象参数很简单,但是网络通信的时候,你可能就要将pojo中每个属性作为的参数发往服务端,然后服务端再逐个获取在封装成pojo对象),这直接造成了代码的冗余及调用的不便利。

        能不能调用将这些冗余的统一起来,并将请求的方式整成在像在同个应用中调用,当然可以(如下图)

        服务端抽象出一个接口,然后实现这个接口,然后注册到一个map中,k-v分别为:接口名 => 实现类的实例。

       客户端将服务端的接口复制一份到应用中,然后程序启动时自动生成一个这个接口的代理类,后面直接调用这个代理类方法,而这个代理类通过网络通信,将接口名、方法名、序列化的参数数据发送到服务端。

        服务端收到接口名,然后从map中找到实现类的实例,然后再将参数数据反序列化变为对象,接着根据获得的方法参数使用反射技术调用实例的方法。然后将执行结果序列化通过网络返回给客户端,客户端的代理类将数据反序列化为对象后再返回给调用方。对客户端程序开发者而言,就像是调用当前应用内的方法。

上面的两个概念:

        1.序列化:在程序执行中一个对象中属性使用的空间并不是固定大小的(例如:字符串属性),并且也不是使用的连续内存(不同时间申请的空间,肯定做不到连续),所以我们做不到指定开始结束两个位置来复制内存数据直接传输,所以我们要开辟一块连续的内存,并将对象的所有数据按照指定的格式(譬如用竖线‘|’分隔)隔离数据的意义放到这段内存中。我们用一个生活的例子:你有多个储蓄罐,每个储蓄罐有一种用途,一个是买糖的,一个是买盐的,现在你钱存够了,然后要让别帮你买东西,你第一步要把每个储蓄罐中的钱都拿出来放到他手上(就是上面不连续的数据变成连续的),第二你要告诉他这些钱要分几份,每份多少钱,要买什么的(隔离数据的意义)。

        2.stub:我们在rpc中经常会遇到这个词,意思是:存根、票据,那这个是什么意思呢?其实就是记录将来要使用的一些信息。举例就是:你记性不好,看到一家肯德基店,你就把位置在纸上记下,等到星期四了,你就去拿起那张纸看下位置在哪里,然后去买,这张纸就是存根。在rpc通信中stub就代表了服务端的相关信息。


http://chatgpt.dhexx.cn/article/HGvoEyJe.shtml

相关文章

RPC核心原理是什么?以及常用技术有哪些?

前面一篇文章有提到过RPC,那么RPC是什么呢? RPC(Remote Procedure Call),代表远程过程调用,通过网络通信调用不同的服务,共同支撑一个软件系统,微服务实现的基石技术。使用RPC可以解…

RPC框架原理简介

什么是RPC框架? RPC,全称为Remote Procedure Call,即远程过程调用,是一种计算机通信协议。 比如现在有两台机器:A机器和B机器,并且分别部署了应用A和应用B。假设此时位于A机器上的A应用想要调用位于B机器上…

RPC通信原理

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、RPC是什么?二、RPC原理总…

RPC框架面试总结-RPC原理及实现

一、什么是RPC RPC是远程调用过程的简写,是一个协议,处于网络通信协议的第五层:会话层,其下就是TCP/IP协议,在建立在其基础上的通信会话协议。RPC定义了交互的模式,而应用程序使用这些模式,来访…

RPC原理与FastRPC实现

0. 起因 最近看文档,发现一些组件是通过FastRPC来进行沟通的,并且偶尔看到某些场景下在FastRPC上的时间消耗好像也蛮可观,恰好FastRPC是开源的,因此决定看看FastRPC具体的实现。 1. RPC简介 当初在学Java的时候,初遇…

RPC原理详解

转自:http://www.cnblogs.com/metoy/p/4321311.html RPC 功能目标 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。 为实现该目标,RPC 框架需提供一种透…

RPC原理介绍

面向服务架构SOA 任何大型网站的发展都伴随着网站架构的演进。网站架构一般最初是单应用设计,然后逐渐经历面向对象设计和模块化设计的架构,最终发展到面向服务的服务化架构。在单应用设计架构体系当中,我们关注的是方法和实体;而…

RPC 原理与实现

文章目录 1. RPC 简介1.1 什么是RPCReference: LPC & IPC (本地过程调用) 1.2 为什么要用RPC1.2.1 系统架构的演进1.2.2 Web 服务的技术结构1.2.2 SOAP ( Simple Object Access Protocol)1.2.2 REST(Representational State Transfort&am…

RPC核心原理

了解RPC RPC全称Remote Procedure Call,即远程过程调用.其中远程需要跨机器,跨机器需要可靠的网络编程技术实现,无论是Java原生的网络编程模型还是Netty都会让代码中出现大量与业务无关的网络编程代码,RPC技术则是为了解决这个问题的.它帮助我们屏蔽网络编程的细节,实现调用远…

RPC原理(1)之深入RPC原理简介

一、RPC调用原理图 下面这张图是我们微服务一次Http调用请求图: 首先在请求的过程中我们知道是有三次握手,四次挥手的流程,具体流程如下: 1.浏览器请求服务器(订单服务),请求建立连接,首先客户端向服务器…

RPC原理简述

RPC(Remote Procedure Call):远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有: 应…

RPC核心原理详解

什么是RPC? RPC的全称是Remote Procedure Call,即远程过程调用。简单解读字面上的意思,远程肯定是指要跨机器而非本机,所以需要用到网络编程才能实现,但是不是只要通过网络通信访问到另一台机器的应用程序&#xff0c…

RPC原理

RPC就是远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。 原理 一个完整的RPC主要包括三部分: 服务注册中心(Registry),负责将本地服务发布成远程服务,管理远…

从零开始实现RPC框架 - RPC原理及实现

RPC概述 RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。 现在互联网应用的量级越来越大,单台计算机的能力有限,需要借…

RPC介绍与原理

RPC介绍与原理 RPC介绍 RPC是什么 RPC(Remote Procedure Call)是一种进程间通信方式。简单地说就是能使应用像调用本地方法一样的调用远程的过程或服务,可以应用在分布式服务、分布式计算、远程服务调用等许多场景。说起 RPC 大家并不陌生…

RPC理论原理

目录 集群和分布式RPC通信原理 集群和分布式 集群:每一台服务器独立运行一个工程的所有模块。 分布式:一个工程拆分了很多模块,每一个模块独立部署运行在一个服务器主机上,所有服务器协同工作共同提供服务,每一台服务…

一文搞懂RPC原理

了解RPC: RPC(Remote Procedure Call Protocol)——远程过程调用协议: 一般用于实现部署在不同机器上的系统之间的方法调用,使得程序能够像访问本地资源一样,通过网络传输去访问远端系统资源。 描述&…

rpc简介及原理

1.RPC简介及原理介绍 RPC技术内部原理是通过两种技术的组合来实现的:本地方法调用 和 网络通信技术。 1.1 RPC简介 在上述本地过程调用的例子中,我们是在一台计算机上执行了计算机上的程序,完成调用。随着计算机技术的发展和需求场景的变化…

RPC原理解析

1.RPC原理解析 1.1 什么是RPC RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP/IP或UDP,为通信程序…

RPC实现原理

一、什么是RPC框架? RPC,全称为Remote Procedure Call,即远程过程调用,是一种计算机通信协议。 比如现在有两台机器:A机器和B机器,并且分别部署了应用A和应用B。假设此时位于A机器上的A应用想要调用位于B机…