首页 > 解决方案 > 使用 REST 和 java 处理大量大型 Http 请求

问题描述

我必须设计一个接受 Json 请求并且需要将数据上传到数据库的 JAVA REST API。数据也包含图像(Base64 编码),因此每个请求的大小约为 25MB。当这些请求的频率增加时问题就开始了(我已经在 1 秒内测试了 10 个请求),并且在这个速率下 API 抛出java.lang.OutOfMemoryError: Java heap spacejava.lang.OutOfMemoryError: GC overhead limit exceeded. 我试图增加堆大小,但没有帮助。在尝试解决问题时,我尝试禁用任何处理并仅读取服务器上的请求。即使没有应要求进行任何处理,我也遇到了同样的异常。

这是我收到请求时所做的

1)从请求中读取并将所有内容存储在字符串中

2) 从此字符串中获取 json 对象(我使用的是 org.json)

3)其余的处理(我跳过了测试,但我仍然得到那个异常)。

我的问题是如何处理这么多数据?我是否应该将每个请求保存在一个文件中并一次处理固定数量的请求(我认为应该避免)?我应该使用不同的库或算法吗?任何建议都会有所帮助。

我正在使用 Jboss-eap-6.4

标签: javarestweb-serviceshttp

解决方案


推荐阅读