zoukankan      html  css  js  c++  java
  • RPC原理及RPC实例分析

    1、什么是RPC

    由于各服务部署在不同的机器,服务间的调用免不了网络通信过程,服务消费方没调用一个服务都要写一坨网络通信相关的代码,不仅负责而且容易出错

    RPC(Remote Procedure Call)远程过程调用能让我们像调用本地服务一样调用远程服务,而让调用方对网络通信这些细节透明

    常见的RPC框架:

    • 阿里巴巴的hsf、dubbo
    • Facebook的thrift
    • Google的grpc
    • Twitter的finagle等

    2、RPC调用过程及涉及到的通信细节

    1. 服务消费方(client)调用以本地调用方式调用服务
    2.  client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体
    3. client stub找到服务地址,并将消息发送到服务端
    4. server stub收到消息后进行解码
    5. server stub根据解码结果调用本地服务
    6. 本地服务执行并将结果返回给server stub
    7. server stub将返回结果打包成消息并发送至消费方
    8. client stub接收到消息,并进行解码
    9. 服务消费方得到最终结果

    RPC的目标就是要将2-8这些步骤都封装起来,让用户对这些细节透明

    3、如何做到透明化远程服务调用

    怎么封装通信细节才能让用户像以本地调用方式调用远程服务呢?

    对JAVA来说就是使用代理!

     Java代理的两种方式:

    • JDK动态代理
    • CGLIB字节码生成 
  • 相关阅读:
    WinForm被遮挡的控件解决方案
    IC卡资料
    水晶报表2008部署
    打造最强的VC6
    SqlServer Case
    using namespace std
    非接触式IC智能(射频)卡
    删除VS2005插件

    SQLServer2005数据库自动备份
  • 原文地址:https://www.cnblogs.com/xiaoxiao7/p/6056623.html
Copyright © 2011-2022 走看看