RPC(dubbo)

一 定义

RPC是远程过程调用  
远程过程的调用实质调用的是"代理" , 感觉调用的是本地服务 , 但是实际调用的是远

程的服务器 , 代理内部封装了协议规范 , 调用者不需要了解底层 , 即可实现远程过程
调用

在这里插入图片描述

二 RPC(狭义)与HTTP

1 网络7层协议图

在这里插入图片描述

2 层级关系与对应的协议

在这里插入图片描述

3 区别

  1) RPC(TCP/IP)是传输层协议(4层)
    HTTP协议是应用层协议(7层)
  2) RPC(TCP/IP)协议可以直接调用中立接口
    HTTP协议不可以
  3) RPC(TCP/IP)通信协议是长链接 
    HTTP协议一般采用短链接 , 需要3次握手(可以配置长连接, 添加请求头
    Keep-Alive: timeout=20)
  4) RPC(TCP/IP)协议传递数据是加密压缩传输 
    HTTP协议需要传递大量的请求头信息
  5) RPC(TCP/IP)协议一般都有注册中心 , 有丰富的监控机制

三 长连接

1 定义

   指在一个连接上可以连续发送多个数据包

2 特点

   在连接保存期间 , 如果没有数据包发送 , 需要双方发链路检测包

四 调用

1 同步分类

  客户方等待调用执行完成并返回结果

2 异步调用

  客户方调用后不用等待执行结果返回 , 但依然可以通过回调通知等方式获取返回结
果 , 若客户端不关心调用返回结果 , 则变成单向异步调用 , 单向调用不用返回结果

3 同步和异步的区分

  在于是否等待服务端执行完成并返回结果

五 组件职责

1 RpcServer

   负责到处(export)远程接口

2 RpcClient

   负责导入(import)远程接口的代理实现

3 RpcProxy

   远程接口的代理实现

4 RpcInvoker

   客户方实现: 负责编码调用信息和发送调用请求到服务方并等待调用结果返回
   服务方实现: 负责调用服务端接口的具体实现并返回调用结果

5 RpcProtocol

   负责协议编码和解码

6 RpcConnector

   负责维护客户方和服务方的连接通道和发送数据到服务方

7 RpcAcceptor

   负责接收客户方请求并返回请求结果

8 RpcProcessor

   负责在服务方控制调用过程 , 包括管理调用线程池 , 超时时间等

9 RpcChannel

   数据传输通道
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值