zoukankan      html  css  js  c++  java
  • 面向服务架构之RPC原理与实例

    1、RPC概述

      RPC(Remote Procedure Call)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。主要是为了应对当前互联网项目量级越来越大而出现的。

    2、Broker模式介绍

      

    3、RPC结构拆解

      

    4、RPC客户端组件与职责

      -RpcClient:负责导入远程接口的代理实现

      -RpcProxy:远程接口的代理实现

      -RpcInvoker:负责编码和发送调用请求到服务方并等待结果

      -RpcProtocol:负责协议的编/解码

      -RpcConnector:负责维护客户/服务方连接通道和发送数据到服务方

      -RpcChannel:数据传输通道

    5、RPC服务端组件与职责

      -RpcServer:负责导出远程接口

      -RpcInvoker:负责调用服务端接口的具体实现并返回结果

      -RpcProtocol:负责协议的编/解码

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

      -RpcProcessor:负责在服务方控制调用过程,包括线程池、超时等

      -RpcChannel:数据传输通道

    6、RPC导出/导入远程接口

    7、RPC数据传输

      -传输协议:建议选择稳定性较强的连接协议(HTTP、TCP),像UDP就不建议选择

      -连接:长连接、短连接、心跳机制

    8、RPC序列化

      -序列化/反序列化:接口方法、方法参数、调用属性等

      -编码格式:XML、JSON、Binary...

      -关注点:效率、字节长度、兼容性...

    9、RPC方法调用

      -RpcInvoker:反射机制

      -RpcProcessor:调用效率、资源隔离、超时控制

    10、RPC异常处理

      -远程调用不一定执行

      -远程调用可能排除RPC框架自带的异常

      -性能差异

    11、RPC实例

      实例代码移步https://github.com/cq1415583094/RPC-Demo

    欢迎志同道合朋友,加QQ群:119126035,QQ:1415583094,微信:cq1415583094
    我的GitHub:https://github.com/cq1415583094
    公众号欢迎关注

  • 相关阅读:
    C#实现任意源组播与特定源组播
    张灵甫此人性格偏激,赌性重,喜欢冒险,做事不留后路,更适合担任中下层军官(要自己掌控着自己的命运)
    Delphi 中 断言 Assert 用法
    桌面程序阻止Windows关机(使用Message.Result取得DefWindowProc API函数的返回值,非常重要)
    Asp.net vnext的IIS部署
    Asp.net vNext 学习3
    EasyUI的后台界面
    C#框架
    前端分离规范
    AngularJS html5Mode与ASP.NET MVC路由
  • 原文地址:https://www.cnblogs.com/chuanqi1415583094/p/8403336.html
Copyright © 2011-2022 走看看