我有Spring Boot RESTful服务API。消费者是其他应用程序。应用程序的其中一个控制器可根据请求返回最多1 000 000个字符串。
在Spring应用程序中拆分此类响应的最佳做法是什么?
更新 我发现开发人员的需求需要响应,并且只会执行一次。因此,最好为此操作创建脚本。 谢谢你的回答。
答案 0 :(得分:1)
以下是在春季启动中使用多部分请求的一个很好的示例:https://murygin.wordpress.com/2014/10/13/rest-web-service-file-uploads-spring-boot/
但是,我更倾向于从架构的角度思考你的问题。为什么其他人会回复如此巨大的反应?是否有必要真正归还所有这些结果?有几个因素可以帮助我提供更好的答案。 这种情况总是存在折衷。
1)基本问题是,您是否无法提供额外的(它们不必是强制性的,它们可以是可选参数)以减少返回结果的数量? 2)您的数据更改频率如何?如果他们不经常更改(让我们说一天一次),那么您可以引入一种分页机制,这样您只返回结果的一部分。在您的身边,您可以在业务逻辑层/数据库和其他客户端之间引入缓存机制。 3)如果您的数据经常变化(就像您提供的航班价格列表一样),那么您可以为每个客户端ID引入一个缓存层。您可以从您这边缓存结果并将其发送到客户端,分为多个请求。当然,您必须为每个缓存的请求添加时间戳和到期日期,否则您将面临内存问题。 4)这引出了另一个问题,疼痛来自哪里? 应用程序客户是否抱怨无法处理他们收到的数据量?或者他们是否因您的服务响应时间而抱怨?或者您的服务器端是否存在性能问题?