用通俗的语言介绍 RPC 框架的架构原理

2022-04-08 11:53:55 浏览数 (1)

若有收获,请记得分享和转发哦

RPC 框架典型的架构

典型的 RPC 架构大致可以分为三个部分:

(1)服务提供者(RPC Server):运行在服务器端,提供服务接口定义与服务实现类。

(2)注册中心(Registry):运行在服务器端,负责将本地服务发布成远程服务,管理远程服务,提供给服务消费者使用。

(3)服务消费者(RPC Client):运行在客户端,通过远程代理对象调用远程服务。

通过上面的图可以看出,一次简单的 RPC 调用可以分为以下几个步骤:

(1)服务提供者启动后主动向服务注册中心注册机器ip、端口以及提供的服务列表;

(2)服务消费者启动时向服务注册中心获取服务提供方地址列表,在本地缓存一份;

(3)服务消费者通过本地调用的方式调用服务,调用模块收到请求后通过负载均衡策略选取合适的远程服务地址;

(4)协议模块负责将方法、入参等信息序列化(编码)成能够进行网络传输的消息体,并将消息通过网络发送给服务端;

(5)服务端收到消息后进行解码(反序列化操作)。

(6)根据解码结果调用本地的服务进行相关处理;

(7)服务端将处理返回的结果进行序列化(编码),并将结果通过网络发送至服务消费者;

(8)服务消费者收到消息后进行解码最终得到结果;

敲黑板:在不同的 RPC 框架实现中步骤 1、2、3的顺序可能有些不同。

0 人点赞