Nodejs之RPC协议简介

本文介绍了RPC(远程过程调用)的概念及其与Ajax的对比,重点讲述了RPC在Nodejs中的应用。通过一个简单的RPC通信协议设计示例,解释了如何在Nodejs中进行编码和解码操作,并提到了流行的Nodejs RPC框架,如gRPC和SOFA。
摘要由CSDN通过智能技术生成

点击上方蓝色字体,关注我啦~~

背景

随着 Nodejs 的兴起,越来越多的 Web 服务中间层被搭建起来。如 Node 服务端渲染,BFF(Backend For Frontend))层,而 RPC 是远端过程调用,经常用于 BFF 层。最近,我打算写一个中间层,用 Nodejs 调用 Go 服务,除了可以简单用 http 调用之外,发现还有基于 RPC 的调用就研究了一下。

RPC简介

RPC(Remote Procedure Call)中文名「远程过程调用」,拆开理解,「过程」也叫方法或函数,「远程」就是说方法不在当前进程里,而是在其他进程或机器上面,合起来 RPC 就是调用其他进程或机器上面的函数。简单讲,就是本地调用的逻辑处理的过程放在的远程的机器上,而不是本地服务代理来处理。一个完整的 RPC 框架主要有三部分组成:通信框架、通信协议、序列化和反序列化格式。

前端视角看RPC

与 Ajax 对比相同点

  • 都是两个计算机之间的网络通信,Ajax 是浏览器和服务器通信,RPC 是服务器和服务器通信

  • 都需要双方约定一个数据格式

与 Ajax 对比不相同点

  • RPC 调用不一定使用 DNS 作为寻址服务,Ajax 一般是浏览器向服务器请求,请求地址一般是https://域名/xxx,服务器需要根据域名区寻找对应的 IP 地址,这就是 DNS 寻址过程,而 RPC 一般用在内网之间互相请求,一般使用特有服务进行寻址。

  • RPC 应用层协议一般不使用 HTTP,一般使用一些二进制协议,其优点是数据包体积更小、编解码速率更快。

  • RPC 基于 TCP 或 UDP 协议,其中 TCP 通信又存在多种通信方式,单工通信[两个服务器之间,只允许单向发送消息,如只能 A 给 B 发消息]、半双工通信[两个服务器之

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值