设计API时进行批量调用有什么好处?

时间:2018-11-07 06:56:12

标签: rest

对于构建Restful API时进行批量调用感到困惑。 例如,我要检查100名学生的身高。之间有什么区别: 1)一一检查身高 2)用20个批号检查高度 3)用50批检查高度

它的好处是什么?我知道批处理将减少HTTP请求数量。当我们评估API的速度时,这是否很重要?

如何选择批量大小?

1 个答案:

答案 0 :(得分:1)

我认为您可能会在使用Google搜索时发现这一点-但我会在这里同样回答。

批处理的好处通常取决于您对它的处理方式。

如果具有保持活动状态的连接,则没有握手的开销,因此您无需花费太多时间来处理此连接上的后续数据包。然后,您可以管道请求并减少延迟。但是,在HTTP1.1中,请求仍然是FIFO-因此您必须“握手”每一请求。这是您可以利用批处理功能的地方!

由于此后您可以发送/检索所有请求所需的所有数据,因此可以最大程度地减少设置每个HTTP连接所产生的开销。这确实意味着您将不得不等待更长的时间来处理该请求,因为所有内容都打包到一个请求中,但是吞吐量有所提高。原因是从发出第一个请求到接收最终响应的往返次数不乘以必须发出的请求数。

但是要记住的是TTFB-到第一个字节的时间。如果逐步加载数据,则用户可以感觉到它更快。想象一下,一个网站一次加载每千个资源中的一个,您作为用户可以看到这些弹出窗口,而一个网站一次加载所有一千个资源,您只是看到一个微调框,直到所有资源都被加载?我敢打赌,您会发现渐进式加载方案“看起来”更快。

很自然,批处理很大程度上取决于您对请求的处理方式(如果值得)。

有时候,您必须谨慎对待批处理,因为如果有多个用户同时发出批处理请求,您可能会在服务器上增加很多负载,并且按顺序处理请求可能是更好的平衡方案。当然,您可以通过一些监视和分析来解决这个问题。

相关问题