On May 27, 2013, at 10:14 PM, Willem jiang <[email protected]> wrote: >>> I just did a prototype of support Netty transport for CXF, it include the >>> server side implementation and client side implementation. And I did some >>> performance compare tests by running the wsdl_first from examples with >>> Jetty transport and Netty transport and using Jmeter to send the requests. >>> The test results are much similar, Netty transport and Jetty transport can >>> hit the highest processing recorder with the throughput of 9M per second in >>> my MacBookPro. I only performance turning I did was just changing the >>> thread pool size of ExecutionHandler which will be used to call the whole >>> soap stake of CXF. >> >> When I looked at Netty's HTTP client stuff (over a year ago now), I had >> MAJOR problems getting it to stream large messages. The small messages >> worked great and did have good performance, but once we could no longer >> buffer the whole message and wanted to get it streaming in chunks, I could >> never get it working. That said, that was a long time ago and they may have >> fixed all the bugs related to that. > The test that I did just one the server side and no chunk encoding involved. > We can polish it if we need :)
Just checked. If the size of the message sent from the client exceeds the chunk threshold, nothing gets sent over the wire at all. :-( The client then just hangs and eventually times out. Didn't really look into what is needed yet. >>> I'd like to commit the prototype into Apache CXF trunk, and we could polish >>> the transport together :) >>> Any thought? >> >> >> >> Sure. On the client side, if it's sticking to HTTP, I'd like to see it plug >> into the HTTPConduit like the async client version does. That's something we >> could work on though. Speaking of asyncclient version, they supposedly have >> a new version that is supposedly significantly faster. On my todo list to >> look at. :-( > Yes, it do the same thing as the async client does. > I will commit the code shortly today. We'll likely need to figure something out. With your changes to distribution, both async and netty clients are in the lib dir and it would then be whichever one is found on the classpath first. -- Daniel Kulp [email protected] - http://dankulp.com/blog Talend Community Coder - http://coders.talend.com
