RPC入门

RPC入门

RPC解释

RPC 「Remote Procedure Call」 即远程过程调用
允许程序调用另一个地址空间的过程或函数
通过一定的协议和方法 使得调用远程计算机的服务和调用本地服务一样

RPC特性

简单

RPC概念的语义清晰简单 建立分布式计算简单<br />

高效

过程调用看起来简单而且高效

通用

单机计算中 过程或函数是不同算法部分间最重要的通信机制

RPC分类

通信协议层层面

  • 基于HTTP协议
  • 基于二进制协议

调用过程层面

  • 同步RPC
  • 异步RPC

RPC原理

概述

一个Client端发送一个RPC请求 实际是通过本地调用的User-stub
User-stub负责将调用的接口 方法 参数通过约定的协议规范进行编码
并通过本地的RPCRuntime实例传输到远端实例 远端RPCRuntime实例收到请求后交给Server-stub进行解码
发起给Server端本地调用 调用结果再返回到Client端

原理图

RPC原理图.JPG

RPC组成

服务端 Server

RPC服务的提供者 负责将RPC服务导出

客户端 Client

RPC服务的消费者 负责调用RPC服务

代理 Proxy

通过动态代理 提供对远程接口的代理实现

执行器 Invoker

对于客户端 主要负责服务调用的编码
调用请求发送和等待结果返回 对于服务端 负责处理调用逻辑并返回调用结果

协议管理 Protocol

负责整个RPC通信协议的编/解码

连接端口 Connector

负责维持客户端和服务端的长连接通道

后台处理 Processor

负责整个调用服务中的管理调度
包括线程池 分发 异常处理等

连接通道 Channel

客户端和服务端的数据传输通道

结语

RPC应用场景实质是一种可靠的请求应答信息流

感谢

  • 《PHP核心技术与最佳实践》
  • 维基百科
# RPC

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×