【java服务端开发】RPC学习(一)-RPC介绍

【java服务端开发】RPC学习(一)-RPC介绍

参考链接:

  1. 服务端之间的调用之RPC、Restful深入理解
  2. JAVA RPC:从上手到爱不释手

RPC简介

RPC(Remote Procedure Call Protocol),远程过程调用,指的是像调用本地服务一样调用服务器的服务。

按照相应方式,RPC分为两种:

  1. 同步调用:客户端调用服务方方法,等待,直到返回结果或超时,再返回继续操作。
  2. 异步调用:客户端把消息发送给中间件,返回继续操作。

RPC架构包含四个组件:

  1. 客户端(Client):服务调用方
  2. 客户端存根(Client Stub):存放服务端地址信息,将客户端的请求参数打包成网络消息,再通过网络发送给服务方。
  3. 服务端存根(Sever Stub):接受客户端发过来的消息并解包,再调用本地服务。
  4. 服务端(Server):真正的服务提供者。

具体步骤:

  1. Client以本地调用方式调用服务。
  2. Client Stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体。
  3. Client Stub找到服务地址,并将消息通过网络发送到Server Stub。
  4. Server Stub收到消息后进行解码,根据解码结果调用Server服务。
  5. Server服务执行处理逻辑,将结果返回给Server Stub。
  6. Server Stub将返回结果打包后通过网络发送给Client Stub。
  7. Client Stub接受消息,解码,将解码结果(即最终结果)给Client。
  8. Client得到调用服务的最终结果。

RPC框架将2-7步封装,使用户能像调用本地服务一样调用远程服务。

RPC模块详解

  1. 服务端(Server):RPC服务的提供者,负责将RPC服务导出。
  2. 客户端(Client):RPC服务的消费者,负责调用RPC服务。
  3. 代理(Proxy):通过动态代理,提供对远程接口的代理实现。
  4. 执行器(Invoker):
    1. 对于客户端:主要负责服务调用的编码,调用请求发送和等待结果返回。
    2. 对于服务方:负责处理调用逻辑并返回调用结果。
  5. 协议管理(Protocol):协议管理组件,负责整个RPC通信协议的编/解码。
  6. 连接端口(Processor):负责维持客户方和服务方的长连接通道。
  7. 后台处理(Processor):负责整个调用服务中的管理调度,包括线程池,分发,异常处理等。
  8. 连接通道(Channel):客户端和服务端的数据传输通道。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值