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、相同点:
① 都是两个计算机之间的网络通信
② 需要双方约定一个数据格式