java - 使用 REST 和 java 处理大量大型 Http 请求
问题描述
我必须设计一个接受 Json 请求并且需要将数据上传到数据库的 JAVA REST API。数据也包含图像(Base64 编码),因此每个请求的大小约为 25MB。当这些请求的频率增加时问题就开始了(我已经在 1 秒内测试了 10 个请求),并且在这个速率下 API 抛出java.lang.OutOfMemoryError: Java heap space
或java.lang.OutOfMemoryError: GC overhead limit exceeded
. 我试图增加堆大小,但没有帮助。在尝试解决问题时,我尝试禁用任何处理并仅读取服务器上的请求。即使没有应要求进行任何处理,我也遇到了同样的异常。
这是我收到请求时所做的
1)从请求中读取并将所有内容存储在字符串中
2) 从此字符串中获取 json 对象(我使用的是 org.json)
3)其余的处理(我跳过了测试,但我仍然得到那个异常)。
我的问题是如何处理这么多数据?我是否应该将每个请求保存在一个文件中并一次处理固定数量的请求(我认为应该避免)?我应该使用不同的库或算法吗?任何建议都会有所帮助。
我正在使用 Jboss-eap-6.4
解决方案
推荐阅读
- cron-task - 工作不工作早现在工作
- batch-file - Taskkill 批处理文件以关闭无响应的应用程序关闭正在运行且响应的应用程序
- android - 如何在最新版本的 Android Studio 中修复 android...Coordinator Layout?
- python - 写入另一个文件时出现python脚本错误
- firebase-realtime-database - 使用 angularfire2 从索引中检索对象
- android - 全球应用内通知
- python - numpy isclose 函数是否返回错误的答案?
- python - 我的 main.css 文件不会使用 jinja/flask 链接
- websocket - RxJS 6 websocket 没有收到任何消息
- python - 使用 np.interp 查找给定 y 的 x 值给出错误答案