iskelesi uzmanı aştı, büyük veriyi http proxy gibi deve iskelesi üzerinden geri alırken hata yaşıyorum, herhangi bir deneyim/fikir/öneri memnuniyetle karşılıyor. RouteBuilder kodu:Camel-Jetty http proxy + büyük yanıt verileri dizisi sorunu: Tamponlama kapasitesi
from("servlet:balancer?matchOnUriPrefix=true")
.to("jetty:http://vm-a38e-8f19.nam.nsroot.net:19999/balancer/?" + "bridgeEndpoint=true"
+ "&disableStreamCache=true"
+ "&throwExceptionOnFailure=false"
+ "&bufferSize=1024000000"
+ "&inboundBufferSize=1024000000"
+ "&outboundBufferSize=1024000000"
+ "&eagerCheckContentAvailable=true"
+ "&httpClient.responseBufferSize=1024000000&responseBufferSize=1024000000&chunked=false")
ENV:
<jdk.version>1.8</jdk.version>
<camel.version>2.17.0</camel.version>
<spring.version>4.2.4.RELEASE</spring.version>
<spring.security.version>4.0.4.RELEASE</spring.security.version>
http tabanlı dinlenme hizmet dönüş geri json veri 5000 kayıtları, ben, tepki tampon boyutunu maalesef hala ayarlamak için birçok yol denedi
Got hatası
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 314] - Response content HttpResponse[HTTP/1.1 200 OK]@54e3183e
[email protected][p=40262,l=47776,c=1024000000,r=7514]={umn12":"data4782"...4875","\r\n2000\r\n<<<column10":"data48...16":"data4892",>>>data3198","column...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 158] - Parsed false, remaining 0 HttpParser{s=CHUNK,2096474 of -1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.http.HttpParser 1232] - parseNext s=CHUNK [email protected][p=47776,l=47776,c=1024000000,r=0]={umn12":"data4782"...16":"data4892",<<<>>>data3198","column...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 158] - Parsed false, remaining 0 HttpParser{s=CHUNK,2096474 of -1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint 142] - filled 31280 [email protected]{vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999<->51324,Open,in,out,-,-,3/0,HttpConnectionOverHTTP}{io=0,kio=0,kro=1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 113] - Read 31280 bytes [email protected][p=0,l=31280,c=1024000000,r=31280]={<<<"column17":"data4...ata4964","colum>>>54","column16":"d...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} from [email protected]{vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999<->51324,Open,in,out,-,-,0/0,HttpConnectionOverHTTP}{io=0,kio=0,kro=1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.http.HttpParser 1232] - parseNext s=CHUNK [email protected][p=0,l=31280,c=1024000000,r=31280]={<<<"column17":"data4...ata4964","colum>>>54","column16":"d...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 314] - Response content HttpResponse[HTTP/1.1 200 OK]@54e3183e
[email protected][p=0,l=678,c=1024000000,r=678]={<<<"column17":"data4...a4894","column8>>>\r\n2000\r\n":"data48...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.http.HttpParser 1587] - CHUNK --> CHUNKED_CONTENT
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.http.HttpParser 1587] - CHUNKED_CONTENT --> CHUNK_SIZE
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.http.HttpParser 1587] - CHUNK_SIZE --> CHUNK
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 314] - Response content HttpResponse[HTTP/1.1 200 OK]@54e3183e
[email protected][p=686,l=8878,c=1024000000,r=8192]={"column17":"data4...column8\r\n2000\r\n<<<":"data4894","col..."column6":"data>>>\r\n2000\r\n4913","co...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpExchange 228] - Failed [email protected] req=TERMINATED/[email protected] res=COMPLETED/java.lang.IllegalArgumentException: Buffering capacity [email protected]: req=false/rsp=true java.lang.IllegalArgumentException: Buffering capacity exceeded
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.http.HttpParser 1555] - close HttpParser{s=CHUNK,2105344 of -1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.http.HttpParser 1587] - CHUNK --> CLOSED
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 514] - Response failure HttpResponse[HTTP/1.1 200 OK]@54e3183e [email protected] req=TERMINATED/[email protected] res=COMPLETED/java.lang.IllegalArgumentException: Buffering capacity [email protected] on [email protected]([email protected] req=TERMINATED/[email protected] res=COMPLETED/java.lang.IllegalArgumentException: Buffering capacity [email protected])[[email protected](req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],[email protected](rsp=FAILURE,failure=java.lang.IllegalArgumentException: Buffering capacity exceeded)[HttpParser{s=CLOSED,2105344 of -1}]]: java.lang.IllegalArgumentException: Buffering capacity exceeded
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 529] - Concurrent failure: response termination skipped, performed by helpers
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpExchange 259] - Aborted (true) while active [email protected] req=TERMINATED/[email protected] res=COMPLETED/java.lang.IllegalArgumentException: Buffering capacity [email protected]: java.lang.IllegalArgumentException: Buffering capacity exceeded
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 541] - State update failed: TRANSIENT -> CONTENT: FAILURE
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpExchange 210] - Terminated response for [email protected] req=TERMINATED/[email protected] res=TERMINATED/java.lang.IllegalArgumentException: Buffering capacity [email protected], result: Result[HttpRequest[GET /balancer/restservice/largedata HTTP/1.1]@66fc8f65 > HttpResponse[HTTP/1.1 200 OK]@54e3183e] java.lang.IllegalArgumentException: Buffering capacity exceeded
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 442] - Response complete HttpResponse[HTTP/1.1 200 OK]@54e3183e
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpChannel 89] - [email protected] req=TERMINATED/[email protected] res=TERMINATED/java.lang.IllegalArgumentException: Buffering capacity [email protected] disassociated true from [email protected](exchange=null)[[email protected](req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],[email protected](rsp=FAILURE,failure=java.lang.IllegalArgumentException: Buffering capacity exceeded)[HttpParser{s=CLOSED,2105344 of -1}]]
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.ConnectionPool 257] - Connection removed [email protected](l:/10.114.146.192:51324 <-> r:vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999,closed=true)[[email protected](exchange=null)[[email protected](req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],[email protected](rsp=FAILURE,failure=java.lang.IllegalArgumentException: Buffering capacity exceeded)[HttpParser{s=CLOSED,2105344 of -1}]]] - pooled: 0
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint 75] - oshut [email protected]{vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999<->51324,Open,in,out,-,-,4/0,HttpConnectionOverHTTP}{io=0,kio=0,kro=1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.http.HttpConnectionOverHTTP 154] - [email protected](l:/10.114.146.192:51324 <-> r:vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999,closed=true)[[email protected](exchange=null)[[email protected](req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],[email protected](rsp=FAILURE,failure=java.lang.IllegalArgumentException: Buffering capacity exceeded)[HttpParser{s=CLOSED,2105344 of -1}]]] oshut
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.io.AbstractEndPoint 108] - onClose [email protected]{vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999<->51324,CLOSED,in,OSHUT,-,-,4/0,HttpConnectionOverHTTP}{io=0,kio=0,kro=1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint 115] - close [email protected]{vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999<->51324,CLOSED,in,OSHUT,-,-,4/0,HttpConnectionOverHTTP}{io=0,kio=0,kro=1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.io.SelectorManager 756] - Destroyed [email protected]{vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999<->51324,CLOSED,ISHUT,OSHUT,-,-,5/0,HttpConnectionOverHTTP}{io=0,kio=-1,kro=-1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.io.AbstractConnection 210] - onClose [email protected](l:/10.114.146.192:51324 <-> r:vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999,closed=true)[[email protected](exchange=null)[[email protected](req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],[email protected](rsp=FAILURE,failure=java.lang.IllegalArgumentException: Buffering capacity exceeded)[HttpParser{s=CLOSED,2105344 of -1}]]]
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.io.AbstractEndPoint 108] - onClose [email protected]{vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999<->51324,CLOSED,ISHUT,OSHUT,-,-,5/0,HttpConnectionOverHTTP}{io=0,kio=-1,kro=-1}
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.http.HttpConnectionOverHTTP 157] - [email protected](l:/10.114.146.192:51324 <-> r:vm-a38e-8f19.nam.nsroot.net/10.42.108.76:19999,closed=true)[[email protected](exchange=null)[[email protected](req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator{s=START}],[email protected](rsp=FAILURE,failure=java.lang.IllegalArgumentException: Buffering capacity exceeded)[HttpParser{s=CLOSED,2105344 of -1}]]] closed
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 450] - Request/Response failed: Result[HttpRequest[GET /balancer/restservice/largedata HTTP/1.1]@66fc8f65 > HttpResponse[HTTP/1.1 200 OK]@54e3183e] java.lang.IllegalArgumentException: Buffering capacity exceeded
[2016/04/11 18:32:09 CST] [DEBUG] [org.apache.camel.processor.DefaultErrorHandler 153] - Failed delivery for (MessageId: ID-APACCNDLBIW2480-51289-1460370708686-0-7 on ExchangeId: ID-APACCNDLBIW2480-51289-1460370708686-0-8). On delivery attempt: 0 caught: org.apache.camel.CamelExchangeException: JettyClient failed cause by: Buffering capacity exceeded. Exchange[ID-APACCNDLBIW2480-51289-1460370708686-0-8]. Caused by: [java.lang.IllegalArgumentException - Buffering capacity exceeded]
[2016/04/11 18:32:09 CST] [DEBUG] [org.apache.camel.processor.Pipeline 78] - Message exchange has failed: so breaking out of pipeline for exchange: Exchange[ID-APACCNDLBIW2480-51289-1460370708686-0-8] Exception: org.apache.camel.CamelExchangeException: JettyClient failed cause by: Buffering capacity exceeded. Exchange[ID-APACCNDLBIW2480-51289-1460370708686-0-8]. Caused by: [java.lang.IllegalArgumentException - Buffering capacity exceeded]
[2016/04/11 18:32:09 CST] [ERROR] [org.apache.camel.processor.DefaultErrorHandler 204] - Failed delivery for (MessageId: ID-APACCNDLBIW2480-51289-1460370708686-0-7 on ExchangeId: ID-APACCNDLBIW2480-51289-1460370708686-0-8). Exhausted after delivery attempt: 1 caught: org.apache.camel.CamelExchangeException: JettyClient failed cause by: Buffering capacity exceeded. Exchange[ID-APACCNDLBIW2480-51289-1460370708686-0-8]. Caused by: [java.lang.IllegalArgumentException - Buffering capacity exceeded]
Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId ProcessorId Processor Elapsed (ms)
[route1 ] [route1 ] [servlet:/balancer?matchOnUriPrefix=true ] [ 3135]
[route1 ] [policy1 ] [policy[null] ] [ 3136]
[route1 ] [to1 ] [jetty:http://vm-a38e-8f19.nam.nsroot.net:19999/balancer/?bridgeEndpoint=true&d] [ 3133]
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
org.apache.camel.CamelExchangeException: JettyClient failed cause by: Buffering capacity exceeded. Exchange[ID-APACCNDLBIW2480-51289-1460370708686-0-8]. Caused by: [java.lang.IllegalArgumentException - Buffering capacity exceeded]
at org.apache.camel.component.jetty9.JettyContentExchange9.doTaskCompleted(JettyContentExchange9.java:155)
at org.apache.camel.component.jetty9.JettyContentExchange9$2.onComplete(JettyContentExchange9.java:221)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:193)
at org.eclipse.jetty.client.ResponseNotifier.notifyComplete(ResponseNotifier.java:185)
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:453)
at org.eclipse.jetty.client.HttpReceiver.terminateResponse(HttpReceiver.java:434)
at org.eclipse.jetty.client.HttpReceiver.responseContent(HttpReceiver.java:360)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.content(HttpReceiverOverHTTP.java:254)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.content(HttpReceiverOverHTTP.java:38)
at org.eclipse.jetty.http.HttpParser.parseContent(HttpParser.java:1499)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:1272)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.parse(HttpReceiverOverHTTP.java:156)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.process(HttpReceiverOverHTTP.java:117)
at org.eclipse.jetty.client.http.HttpReceiverOverHTTP.receive(HttpReceiverOverHTTP.java:69)
at org.eclipse.jetty.client.http.HttpChannelOverHTTP.receive(HttpChannelOverHTTP.java:89)
at org.eclipse.jetty.client.http.HttpConnectionOverHTTP.onFillable(HttpConnectionOverHTTP.java:122)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Buffering capacity exceeded
at org.eclipse.jetty.client.util.BufferingResponseListener.onContent(BufferingResponseListener.java:114)
at org.eclipse.jetty.client.api.Response$Listener$Adapter.onContent(Response.java:245)
at org.eclipse.jetty.client.ResponseNotifier.notifyContent(ResponseNotifier.java:124)
at org.eclipse.jetty.client.ResponseNotifier.access$100(ResponseNotifier.java:35)
at org.eclipse.jetty.client.ResponseNotifier$ContentCallback.process(ResponseNotifier.java:274)
at org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:246)
at org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:208)
at org.eclipse.jetty.client.ResponseNotifier.notifyContent(ResponseNotifier.java:117)
at org.eclipse.jetty.client.HttpReceiver.responseContent(HttpReceiver.java:322)
... 13 more
[2016/04/11 18:32:09 CST] [DEBUG] [org.eclipse.jetty.client.HttpReceiver 158] - Parsed true, remaining 22402 HttpParser{s=CLOSED,2105344 of -1}
Jetty'nin hiçbir şeyi arabelleğe almamasını bilmiyorum. Mümkün olduğundan emin değilim. Proxy rotanızda 'http4' bileşenini üretici olarak deneyebilir misiniz? Camel 2.17.0'da, akış önbelleği devre dışı bırakılmışsa yanıt akışının [önbelleklenmeyeceği] (https://issues.apache.org/jira/browse/CAMEL-7638) ek faydası ile birlikte gelir. – Ralf
Başka bir nedenden ötürü, deve-jetty kullanmam gerekiyor, yine de, hiçbir şey önbelleğe almayı nasıl anlayacağımı anlayacağım, ilk tercih bu :), yanıt önbellek arabelleği boyutunu ikincil olarak değiştir ... –