zoukankan      html  css  js  c++  java
  • Node.js简单理解 RPC调用

    RPC调用(Remote Producedure Call 远程过程调用)
     
    RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
     
    RPC调用和 Ajax调用的区别
     
    1、不同点
       ① RPC调用是一个服务器和另外一个服务器之间的通信,Ajax是服务器和浏览器之间的通信      
       ② 不一定使用DNS作为寻址服务,Ajax使用DNS作为寻址服务,但是RPC不一定使用,一般是在内        网间进行通信,使用DNS通讯划不来
          Ajax的DNS寻址
          浏览器发送http请求(http://域名/路径)
          DNS负责将域名转换为IP
        RPC调用的DNS寻址 
        通过ID(统一标准的字符,例如腾讯的L5、阿里的VIP)来获取IP
     
      ③ 应用层协议一般不使用HTTP,RPC一般使用二进制协议来取代HTTP,因为二进制协议有一些性能上的优势
         Ajax因为是浏览器向服务器之间的通信,浏览器都用http通信
         RPC使用TCP通信
         TCP通信方式
          1、单工通信(只能cliient向server发送数据或者只能server向client发送数据)
          2、半双工通信(在同一时间段内,只能向另一方发送数据,相当于独木桥)
          3、全双工通信(随时互相发送数据,相当于双向车道,但是成本比较高)
     
       ④ RPC基于TCP或UDP,Ajax一般基于HTTP
           Ajax使用http协议,要么是html/xml,要么是json
           RPC调用使用二进制协议,更小的数据包体积,更快的编解码速率,使用计算机语言,二进制解    码更利于计算机理解,http文本协议更利于人类理解
     
    2、相同点:
       ① 都是两个计算机之间的网络通信
       ② 需要双方约定一个数据格式
  • 相关阅读:
    Promise是如何实现异步编程的?
    js 检测元素是否被覆盖
    antd upload组件结合七牛云上传图片
    webpack原理分析之编写一个打包器
    docker命令构建Java程序镜像,并运行它
    新建mysql docker指定版本
    spring官方文档网址
    rabbitmq用x-delayed-message的exchange特性支持消息延迟消费
    解决Can't open /usr/lib/grub/update-grub_lib
    java8-强大的Stream API
  • 原文地址:https://www.cnblogs.com/wjrelax/p/13272794.html
Copyright © 2011-2022 走看看