ゲートウェイ クラスでルーティングの目的で「zuul-core-1.0.28」モジュールを使用しています。サイズがそれぞれ 50 MB のファイルをいくつかアップロードしているときに、リクエストを適切な API に転送しているときに、Routing クラスの 1 つから「java.lang.OutOfMemoryError: Java heap space」例外がスローされます。転送中、ZuulFilter はリクエスト本文 (この場合はファイルのチャンク) を解析しようとしますが、そこで失敗し、以下の例外をスローします。
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:149) ~[na:1.8.0_51]
at java.lang.StringCoding.decode(StringCoding.java:193) ~[na:1.8.0_51]
at java.lang.String.<init>(String.java:414) ~[na:1.8.0_51]
at java.lang.String.<init>(String.java:479) ~[na:1.8.0_51]
at com.netflix.zuul.http.HttpServletRequestWrapper.parseRequest(HttpServletRequestWrapper.java:167) ~[zuul-core-1.0.28.jar:na]
at com.netflix.zuul.http.HttpServletRequestWrapper.getInputStream(HttpServletRequestWrapper.java:225) ~[zuul-core-1.0.28.jar:na]
at javax.servlet.ServletRequest$getInputStream$1.call(Unknown Source) ~[na:na]
at SimpleHostRoutingFilter.j(SimpleHostRequest.groovy:318) ~[spider.jar:na]
at SimpleHostRoutingFilter$getRequestBody$2.callCurrent(Unknown Source) ~[na:na]
at SimpleHostRoutingFilter.run(SimpleHostRequest.groovy:175) ~[spider.jar:na]
at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112) ~[zuul-core-1.0.28.jar:2.4.4]
at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:197) ~[zuul-core-1.0.28.jar:2.4.4]
at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:161) ~[zuul-core-1.0.28.jar:2.4.4]
at com.netflix.zuul.FilterProcessor.route(FilterProcessor.java:120) ~[zuul-core-1.0.28.jar:2.4.4]
at com.netflix.zuul.ZuulRunner.route(ZuulRunner.java:84) ~[zuul-core-1.0.28.jar:2.4.4]
at com.netflix.zuul.http.ZuulServlet.route(ZuulServlet.java:111) ~[zuul-core-1.0.28.jar:na]
at com.netflix.zuul.http.ZuulServlet.service(ZuulServlet.java:77) ~[zuul-core-1.0.28.jar:na]
特に、この問題は何度もここに投稿されており、JVM ヒープ サイズを 1GB まで増やしましたが、まだ問題に直面しています。さらに、何千ものリクエストが非常に頻繁に発生し、メモリを増やしてもあまり役に立たないため、本番環境では最初に失敗すると確信しています。
どんな助けでも大歓迎です。