RPC通信原理概述
RPC通信原理概述
1、RPC概述
1、什么是RPC
RPC(Remote Procedure Call Protocol)远程过程调用协议。它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。说白了就是客户端在不知道调用细节的情况下,调用存在于远程计算上的某个过程或函数,就像调用本地应用程序中的一样。
2、传统服务调用
1、获取IP、端口、接口名:
2、设置请求行、请求头、请求体等信息
3、编码处理
.....等等等等
以上这些只是一些基本的功能
3、作用及优势
作用:
1、使服务解耦
2、分布式设计
3、部署灵活
4、容易扩展
优点:
1、一般使用长链接,不必每次通信都要3次握手,减少网络开销
2、一般都有注册中心,有丰富的监控管理
3、发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作
4、协议私密,安全性较高
5、rpc 能做到协议更简单内容更小,效率更高
6、rpc是面向服务的更高级的抽象,支持服务注册发现,负载均衡,超时重试,熔断降级等高级特性
2、RPC架构分析
RPC的定义:远程过程调用,调用远程就像调用本地某个过程或函数。通过这一句我们是不是感受不到IP等地址信息的存在了,请求头是不是也应该存在了,编码什么的也不复存在了吧,网络传输不应该让我们开发者感受到了吧.......中间的所有跟调用过程相关的是不是都是RPC内部应该帮我们做的,那么接下来我们看一下RPC中具体应该有哪些模块,每个模块又有什么存在的意义
1、都有哪些组件(模块)
1、调用模块:通过该模块对数据进行封装、对请求进行负载、超时判断、熔断和限流等等
2、序列化 : 通过该模块对数据进行序列化,转成可通过网络传输的格式,并在没收到数据后反序列化成可读的格式
3、协议编码:这里的编码是对数据的编码和解码
4、网络传输:两个服务之间信息的传输
5、服务发现:从注册中心订阅服务
6、服务注册:将服务提供者提供的服务注册到注册中心供消费者使用
7、注册中心:在高可用的生产环境中,服务一般都以集群方式提供服务,集群里面的IP等重要参数信息可能随时会发生变化,节点也可能会动态扩缩 容,客户端需要能够及时感知服务端的变化,获取集群最新服务节点的连接信息,而这些变化要求是要对调用方应用无感知的
3、RPC实现要点
其实根据上面的讲述,RPC框架中会使用到的技术我们已经有了一个大概的了解,除了上面哪些还有什么是我们没有考虑到的呢?
1、序列化
2、动态代理
3、网络通信
4、熔断限流
5、超时重试
6、路由负载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库