如何划分大型 Http 响应



我有Spring Boot RESTful service API。消费者是其他应用程序。其中一个应用程序的控制器根据请求返回多达 1000 000 个字符串。

在 Spring 应用程序中拆分此类响应的最佳实践是什么?

更新:我发现响应是开发人员的需求所必需的,并且只会执行一次。因此,最好为此操作创建脚本。感谢您的回答。

以下是在 Spring 引导中使用多部分请求的一个很好的例子: https://murygin.wordpress.com/2014/10/13/rest-web-service-file-uploads-spring-boot/

但是,我更愿意从架构的角度考虑您的问题。为什么其余的要返回如此巨大的反应?是否有必要真正返回所有这些结果? 有几个因素可以帮助我给出更好的答案。这是总是需要权衡取舍的情况。

1(基本问题是,您不能提供额外的(它们不必是强制性的,它们可以是可选参数(来减少返回的结果量吗?2(您的数据更改频率如何?如果它们不经常更改(假设每天一次(,那么您可以引入一种分页机制,以便仅返回结果的一部分。从您这边,您可以在业务逻辑层/数据库和其余客户端之间引入缓存机制。3(如果您的数据经常更改(例如您提供航班价格列表(,那么您可以为每个客户端 ID 引入一个缓存层。您可以从您这边缓存结果并将其发送到分成多个请求的客户端。当然,您必须为每个缓存的请求添加时间戳和到期日期,否则您将面临内存问题。4(这就引出了另一个问题,疼痛从何而来?应用程序客户端是否抱怨无法处理他们收到的数据量?还是他们抱怨您的服务响应时间?或者您的服务器端有性能问题?

最新更新