我正在尝试通过Apache geode创建REST应用程序。应用程序在数据有限的情况下运行良好,但在需要获取完整数据(~0.8M)的情况下,它在服务器上出现OOM异常时失败。
例外:
HTTP GET错误:500
REST OQL响应:{"原因":"处理程序调度失败;嵌套异常是java.lang.OutOfMemoryError:Java堆空间"}
我尝试了与缓存客户端相同的方法,它可以无缝地工作,但我们需要使用REST来集成我们的应用程序。
有什么想法可以解决这个问题吗? 我正在考虑以下方法。
我们可以在服务器端打破数据并使用" Range"使用Apache Geode?我很快就试过了,但效果不好。
我们可以开始在客户端将数据放入较小的缓冲区并开始通过缓冲区读取缓冲区吗?
是否可以将数据作为数据流从Geode中取出?
谢谢,
阿沛
答案 0 :(得分:0)
您是否有可能分享您获得的OOM的堆栈跟踪?你是说结果是0.8 兆字节?这似乎不应该对OOME造成影响。
您可以使用OQL queries获取数据范围,但如果您的数据集非常小,那么REST API似乎还会发生其他奇怪的事情。