RPC 2025/4/8
RPC(Remote Procedure Call),远程过程调用。
应用场景:大型微服务项目,服务部署到不同的服务器上,需要远程调用,可以使用RPC。
两个概念:
- 远程过程调用
- 本地调用
RPC目的:调用远程方法感觉就像调用本地方法一样。
如何实现的?
- 动态代理
- 序列化和反序列化
- NIO通信
- 服务注册中心
动态代理:会给接口生成代理类,我们调用的接口其实是动态生成的代理类。
序列化:把对象或者数据结构转化成二进制字节码的过程。序列化后才可以在网络上传输。
反序列化:序列化反过来的过程。服务端收到了(客户端的请求消息)再进行反序列化。
NIO:网络通信,实现客户端和服务端的通信。(Socket)
服务注册中心:如果达到工业级别,就需要用到注册中心。这就涉及到服务发现(找服务)、路由分组、负载均衡、限流熔断、异常重试。
mark 大佬好文:
RPC是什么?(一篇文章让你明白!) - 知乎
RPC(Remote Procedure Call)核心,万变不离其宗 - 我是YINGZI - 博客园