• (转)RPC原理详解


    转自:http://www.open-open.com/lib/view/open1425797146897.html

    RPC功能目标

    RPC的主要功能目标是让构建分布式计算(应用)更加容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。

    为实现该目标,RPC框架需提供一种透明的调用机制使使用者不必显式区分本地调用与远程调用

    RPC调用分类:

    RPC调用可以分为两种:

    1)同步调用:客户方等待调用执行完成并返回执行结果

    2)异步调用:客户方调用后不用等待执行结果返回,但依然可以通过回调方式获取执行结果

    RPC结构拆解

    RPC原理详解

    RPC服务方通过RPCServer导出(export)远程接口方法,RPC客户方通过RPCClient导入(import)远程接口方法

    客户方:

    像调用本地方法一样调用远程接口方法,RPC框架实现接口的代理实现,实际的调用委托给代理RPCProxy

    代理PRCProxy封装调用信息并将调用转交给PRCInvoker去实际执行

    客户端的RPCInvoker通过连接器RPCConnector维持与服务端的通道RPCChannel,使用PRCProtocol执行协议编码,并将编码后的请求消息通过通道发送给服务方

    服务方:

    通过接收器RPCAcceptor接受客户端的调用请求,同样使用RPCProtocol执行协议解码

    解码后的调用信息传递给RPCProcessor去控制处理调用过程

    最后委托给PRCInvoker去实际执行调用并放回执行结果

    各组件职责规划:

      1. RpcServer
        负责导出(export)远程接口
      2. RpcClient
        负责导入(import)远程接口的代理实现
      3. RpcProxy
        远程接口的代理实现
      4. RpcInvoker
        客户方实现:负责编码调用信息和发送调用请求到服务方并等待调用结果返回
        服务方实现:负责调用服务端接口的具体实现并返回调用结果
      5. RpcProtocol
        负责协议编/解码
      6. RpcConnector
        负责维持客户方和服务方的连接通道和发送数据到服务方
      7. RpcAcceptor
        负责接收客户方请求并返回请求结果
      8. RpcProcessor
        负责在服务方控制调用过程,包括管理调用线程池、超时时间等
      9. RpcChannel
        数据传输通道
  • 相关阅读:
    数据库系统原理
    Java并发编程详解读书笔记(一)
    Java基础之String
    Java基础之数据类型
    winform BackgroundWorker控件的用法
    汉子转拼音
    model验证(验证登录、注册...)
    Ajax.BeginForm 异步搜索
    Ajax.ActionLink 辅助方法实现局部刷新
    js 随笔
  • 原文地址:https://www.cnblogs.com/buptlyn/p/4453501.html
Copyright © 2020-2023  润新知