REST与RPC的简单对比

本文深入解析了REST(表述性状态转移)与RPC(远程过程调用协议)两种网络架构风格的特点与区别。REST利用HTTP协议操作资源,适用于开放API场景;RPC则注重效率,适合内部系统间调用。文章还探讨了它们在微服务架构中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、REST:Representational State Transfer,表述性状态转移

REST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。REST规范把所有内容都视为资源,网络上一切皆资源。

REST并没也创造新的技术,组件或服务,只是使用Web的现有特征和能力。可以完全通过HTTP协议实现,使用HTTP协议处理数据通信。REST架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。

Http动词与对应的REST风格的CRUD对应关系如下:

1、POST对应      Create(update,delete)

2、GET对应Read

3、PUT对应Update(create)

4、DELETE对应Delete。

二、RPC   :Remote Procedure Call,远程过程调用协议

RPC框架主要做以下三件事:

1、server端如何确定client端要调用的函数:

在远程调用过程中,客户端和服务端分别维护一个【ID->函数】的对应表,ID在所有进程中都是唯一确定的。客户端在做远程过程调用时,附上这个ID,服务端通过查表,来确定客户端需要调用的函数,然后执行相应函数的代码。

2、如何进行序列化和反序列化

客户端和服务端交互时将参数或结果转化为字节流在网络中传输,那么数据转化为字节流的或者将字节流转换成能读取的固定格式时就需要进行序列化和反序列化,序列化和反序列化的速度也会影响远程调用的效率。

3、如何进行网络传输(选择何种网络协议)

多数RPC框架选择TCP作为传输协议,也有部分选择HTTP,如gRPC使用HTTP2。不同的协议各有利弊。TCP更加高效,而HTTP在实际应用中更加的灵活。

三、REST与RPC比较

 

 
 

四、应用场景

REST和RPC都常用于微服务架构中。

1、HTTP相对更规范,更标准,更通用,无论哪种语言都支持http协议。如果你是对外开放API,例如开放平台,外部的编程语言多种多样,你无法拒绝对每种语言的支持,现在开源中间件,基本最先支持的几个协议都包含RESTful。

RPC在微服务中的利用

2、 RPC 框架作为架构微服务化的基础组件,它能大大降低架构微服务化的成本,提高调用方与服务提供方的研发效率,屏蔽跨进程调用函数(服务)的各类复杂细节。让调用方感觉就像调用本地函数一样调用远端函数、让服务提供方感觉就像实现一个本地函数一样来实现服务。

 

最后建议

REST调用及测试都很方便,RPC就显得有点繁琐,但是RPC的效率是毋庸置疑的,所以建议在多系统之间的内部调用采用RPC。对外提供的服务,Rest更加合适。



转载于:https://www.cnblogs.com/ExMan/p/10483135.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值