zoukankan      html  css  js  c++  java
  • 什么是RPC框架

    摘要自:https://www.cnblogs.com/111testing/p/11296880.html

    RPC 框架----- 远程过程调用协议RPC(Remote Procedure Call Protocol)-----允许像调用本地服务一样调用远程服务

    1.分布式 ---促使-->RPC诞生

    2. 产生原因:

     (1)本地函数调用:在同一个地址空间(即同一块内存),可以直接调用

     (2)分布式应用下:模仿B/S架构调用方式,开放Restful接口进行调用

     (3)代理模式:封装http请求。代理对象内部通过httpClient来实现RPC远程调用

    3.总结:

    在分布式系统中,能够像本地服务调用一样方便的调用远程服务。

    4.实现:

    (1)通过http实现

    (2)通过Socket自己实现一套协议来实现

    5.RPC框架:适用于大型网站,内部子系统、接口非常多的情况

    (1)长连接,不必每次三次握手,减少网络开销

    (2)注册中心,丰富的监控管理。对调用方无感知

    (3)安全

    dubbo/hessian:调用简单、参数返回值直接定义在jar包里,不需二次解析、轻量、dubbo注册中心,便于管理。

    常用RPC框架:

    (1)RMI(远程方法调用):只适用于Java

    (2)Hessian(基于HTTP远程方法调用)

    (3)Dubbo(淘宝开源的基于TCP的RPC框架)

    6.目的:远程过程调用,解耦服务。

    动态代理模式,至于http协议,只是传输协议而已。

    7. rpc = socket + 动态代理

    8.调用过程:

    (1)调用:A服务器发起调用

    (2)参数序列化:调用方法的参数序列化(序列化或编组)为可以通信的二进制

    (3)寻址:endpoint URI,UDDI服务上查找,RMI Registry的注册地址

      传输:TCP连接(socket)。 可以按需连接,调用结束后就断掉。也可以长连接,多个远程过程共享一个连接

    (4)反序列化:在B服务器中回复为内存中的表达方式

    (5)找到对应方法,进行本地调用。

    (6)得到返回值

    (7)返回值序列化

    (8)传送给A服务器

    (9)A收到返回值,再反序列化

    (10)交给A中的应用

  • 相关阅读:
    课时十一、HMM(隐马尔科夫模型)
    课时十、主题模型(LDA)
    课时九、贝叶斯网络
    课时八、EM算法(最大期望算法)
    课时七、聚类
    课时六、SVM
    如何查看预收录在arXiv上论文的LaTeX源文件并编译
    MySQL事务与锁——总结篇
    BAIRE ONE FUNCTIONS (Baire第一类函数)
    flask_sqlalchemy之查询
  • 原文地址:https://www.cnblogs.com/ppybear/p/12461274.html
Copyright © 2011-2022 走看看