REST API设计 - 获取多个(1000)记录

时间:2016-02-24 01:59:24

标签: java api rest

我有一个Web应用程序,必须使用REST API获取1000条记录。每条记录大约500字节。

从以下方面做到这一点的最佳方法是什么?为什么?还有另一种更好的方法吗?

1>一次获取一条记录。并行触发1000次呼叫。

2>以20个为一组获取。并行触发50个调用。

3>以100为一组获取。并行触发10次调用。

4>一起获取所有1000条记录。

2 个答案:

答案 0 :(得分:1)

正如@Dima在评论中所说,这实际上取决于你想要做什么。

如何使用记录?

  • 处理或编程通信的后端流程是什么?如果是这样,那么一旦客户收到它,它取决于处理的难度。是否需要花费很长时间来处理每条记录?每条记录1毫秒,或每条记录100毫秒?此选项完全取决于每条记录的可能处理时间。

  • 前端是否会为人类用户消费?如果是这样,批量请求将有利于分页结果等原因。在这种情况下,我会亲自选择2或3。

一般来说,根据记录的绝对数量,我建议考虑批量请求(通过触发较少的呼叫)。启发式地说,您可能会以这种方式获得更好的整体网络吞吐量。

如果您添加更多详细信息,我会很高兴地更新我的答案,但在此之前,将军必须这样做!

答案 1 :(得分:0)

最适合什么情况?你想要优化什么?

我在类似的情况下做了一些测试,稍微更大的有效载荷(图像),我的目标是在高延迟设置(跨大陆)上有效利用网络。

我的结果是在经过最小程度的并行(如3-4线程)后,网络几乎完全饱和。我们将它与特定的(专有的)基于UDP的传输协议进行了比较,并没有可测量的差异。

无论如何,它可能不是你想要的,但有时会有一个“愚蠢的”#34; http端点足够好了。