针对大量记录的java Camel restlet性能
我使用的是camel restlet,它的响应记录约为500K。我遇到了性能问题,无法像这样传输大数据。交换过程大约需要300-400毫秒,而如果我在浏览器上查看时间,它将继续运行,如果我测量时间,它将在15-18分钟之间
你能帮我了解一下可能的问题吗?以下是json
{
"BC":[
{
"internalCode":"B1C",
"dgap":0.737940735389102,
"gset":0.40132512265670084,
"lastPrice":0.6980345629460734,
"side":null,
"insttype":"CBBC",
"entitlementratio":0.506859210513693,
"delta":0.1723159666242896,
"logprice":false,
"time":"02-10-2019 03:38:42.122"
}
]
}
路线是这样定义的
<get uri="/getAnalyticsReport?synchronous=true&streamRepresentation=true" bindingMode="off" >
<to uri="direct:analyticsReport" />
</get>
这是我测量的,大约需要300毫秒
我也试着获取堆栈跟踪,这看起来像堆栈跟踪
at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:51)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
at sun.nio.ch.IOUtil.write(IOUtil.java:65)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)
at sun.net.httpserver.Request$WriteStream.write(Request.java:391)
at sun.net.httpserver.FixedLengthOutputStream.write(FixedLengthOutputStream.java:78)
at sun.net.httpserver.PlaceholderOutputStream.write(ExchangeImpl.java:444)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:135)
at java.io.OutputStreamWriter.write(OutputStreamWriter.java:220)
at java.io.Writer.write(Writer.java:157)
at org.restlet.representation.StringRepresentation.write(StringRepresentation.java:237)
at org.restlet.representation.CharacterRepresentation.write(CharacterRepresentation.java:76)
at org.restlet.engine.adapter.ServerCall.writeResponseBody(ServerCall.java:519)
at org.restlet.engine.adapter.ServerCall.sendResponse(ServerCall.java:463)
at org.restlet.engine.adapter.ServerAdapter.commit(ServerAdapter.java:196)
at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:153)
at org.restlet.engine.connector.HttpServerHelper$1.handle(HttpServerHelper.java:73)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)
at sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)
at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)
at sun.net.httpserver.ServerImpl$DefaultExecutor.execute(ServerImpl.java:158)
at sun.net.httpserver.ServerImpl$Dispatcher.handle(ServerImpl.java:431)
at sun.net.httpserver.ServerImpl$Dispatcher.run(ServerImpl.java:396)
at java.lang.Thread.run(Thread.java:748)
共 (0) 个答案