zoukankan      html  css  js  c++  java
  • Concept with HTTP API && RPC

    RPC=Remote Produce Call 是一种技术的概念名词. HTTP是一种协议,RPC可以通过HTTP来实现,也可以通过Socket自己实现一套协议来实现.所以楼主可以换一个问法,为何RPC还有除HTTP之外的实现法,有何必要.毕竟除了HTTP实现外,私有协议不具备通用性.那么我想唯一的答案就在于HTTP不能满足其业务场景的地方,所以这个就要具体案例具体分析了.

    那什么是“远程调用”?

    通常我们调用一个方法,譬如: localAdd(10, 20),localAdd方法的具体实现要么是用户自己定义,要么存在于该语言的库函数中,也就说在localAdd方法的代码实现在本地,它是一个本地调用

    “远程调用”意思就是:被调用方法的具体实现不在程序运行本地,而是在别的某个地方;

    远程调用原理

    譬如 A调用B提供的remoteAdd方法:,

    1. 首先A与B之间建立一个TCP连接;

    2. 然后A把需要调用的方法名(这里是remoteAdd)以及方法参数(10, 20)序列化成字节流发送出去;

    3. B接受A发送过来的字节流,然后反序列化得到目标方法名,方法参数,接着执行相应的方法调用(可能是localAdd)并把结果30返回;

    4. A接受远程调用结果

    RPC框架无非就是把我刚才说的那些细节通通封装起来,给用户暴露简单友好的API使用(ps:有些远程调用选择比较底层的socket协议,有些远程调用选择比较上层的HTTP协议);

  • 相关阅读:
    mysqldump全量和增量备份脚本
    mysqldump根据通配符批量导出
    xtrabackup2.4_MySQL5.7备份与恢复
    ArrayInt
    Oracle wallet配置登陆凭证
    percona xtrabackup8.0.4备份恢复mysql8.0.12
    mysql修改密码
    range
    一周感悟
    Target
  • 原文地址:https://www.cnblogs.com/mysic/p/6265717.html
Copyright © 2011-2022 走看看