Node.js简单理解 RPC调用

Posted 绳命如此井猜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、相同点:
   ① 都是两个计算机之间的网络通信
   ② 需要双方约定一个数据格式

以上是关于Node.js简单理解 RPC调用的主要内容,如果未能解决你的问题,请参考以下文章

node.js 中的二进制 RPC

聊聊字节跳动 Node.js RPC 的设计实现

拓展阅读|理解Node.js事件驱动架构

node.js开发实战

深入理解Node.js基于事件驱动的回调

node.js 中的 RPC 和消息队列