RPC通信原理

article/2025/9/26 19:00:44

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、RPC是什么?
  • 二、RPC原理
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、RPC是什么?

RPC其实就是一个服务需要调用另一个服务的过程。比如有A,B两个服务,如果A服务想要调用B服务的接口,用传统的本地方法肯定是不行的。HTTP请求的速度又是很慢的,并且也是非长连接的,增加了网络开销。因为A服务识别不到B服务的接口的,RPC就是处理这种尴尬局面的。

二、RPC原理

如图:自己画的图,凑合看吧。
在这里插入图片描述

RPC优点:
1,RPC其实就是服务与服务之间的调用,消费方与服务方之间建立一个长连接,避免三次握手,避免频繁的建立链接,销毁了解,节约资源。
2,基于分布式设计,RPC一般都有注册中心,有丰富的监控管。
3,发布,下线接口,动态扩展,对于调用方来说是无感知的。
4,私密协议,安全新高。
5,内容更小,效率更高。
6,支持服务注册发现,负载均衡,超时重试,熔断等机制

RPC的执行流程,是消费者发送请求,rpc框架通过动态代理拦截到请求,对请求内的参数进行序列化操作,然后进行协议编码,再通过网络传输发到服务端。服务端进行解码,反序列化得到正确的参数,然后将数据返回。

RPC动态代理
RPC会自动给接口生成一个代理实现,当项目注入接口的时候,实际运行过程中是绑定这个这个接口的实现,在方法被调用的时候,被代理类拦截,加入调用逻辑
常见的动态代理方式:
1,JDK动态代理代理。运行期间创建代理,通过接口生成代理类。缺点:代理类必须要有一个接口实现,否侧异常。性能上来说,因为是通过反射调用,比直接调用慢,而且生成的代理类文件会占用方法区空间,如果数据量过大,可能造成Full GC
2,GCLIB动态代理,动态生成一个要代理的子类,子类重写被代理类的所有非final方法,在子类中采用拦截技术,拦截所有弗雷方法的调用,采用切面模式,比JDK动态代理快

RPC为什么要序列化
网络中传输数据,必须采用二进制的形式,Java对象是不能在网络中进行传输的,这个操作叫序列化,所以要求序列化的算法是可逆的,可以将一个对象序列化成二进制,也可以将一个二进制反序列化成一个对象。

协议编/解码
对数据的传输进行格式规定,以便于更好的获取对应的信息。例如:dubbo中的协议是16个字节,里面包含了所需要的信息,协议的规定,消费者和服务者必须是同步的。

网络调用
网络调用,必须知道对方的IP地址和端口才能进行正常的调用,不过我们一般通过注册中心进行服务的发现。

在这里插入图片描述
RPC通过注册中心实时获取节点信息,调用方能动态感知服务者信息变更,例如:a服务请求b服务,如果b服务挂了,a服务能动态感知到,避免造成严重问题。如果是配置在配置文件,那么b服务如果挂掉的话,需要修改配置文件才行,属于人肉运维了,不合理。

当然,如果用到rpc的话,一些机制是必不可少的,可以联合注册中心配置,容错降级,路由,负载均衡,超时机制,熔断,限流等。

总结

RPC主要是为了开发者开发的便利,使开发者不需要关注具体的服务调用,只需要像调用本地方法一样去调用服务接口,无论是网络传输效率,还是开发效率都得到了提升。


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

相关文章

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机…

什么是 RPC?RPC原理是什么?

什么是 RPC?RPC原理是什么? 什么是 RPC? RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。比如两个不同的服务 A、B 部署在两台不同的机器…

【RK3399Pro学习笔记】三、Debian 9 安装 ROS (Thinker Edge R)

目录 配置源设置 Key安装初始化rosdep环境配置测试安装rosinstall卸载 平台:华硕 Thinker Edge R 瑞芯微 RK3399Pro 固件版本:Tinker_Edge_R-Debian-Stretch-V1.0.4-20200615 参考资料: RK3399(Debian9 - stretch) 安装 ROS Lunar —— WB8…

VMware安装Debian9及开发环境配置

序 需要用到一个搭载armv7架构A7内核的Linux设备,装的是Debian系统,为便于兼容该设备故用VMware安装一个Debian9虚拟机,整理总结了网上一些信息以供参考。 目录 一、安装Debian91、WMware中的配置2、安装镜像 二、开发环境配置1、设置快捷键打…