Typically, data-intensive protocols tend to work better in terms of bandwidth with classic blocking I / O compared to NIOs if the number of streams is less than 1000. At least that's the case, of course, with client-side HTTP based on (probably imperfect and possibly biased) HTTP test used by Apache HttpClient [1]
It might be much better to use a blocking HTTP client with threads if the number of threads is moderate (<250)
If you are absolutely sure that you want a NIO-based HTTP client, I can recommend the Jetty HTTP client, which I personally consider the best asynchronous HTTP client at the moment.
[1] http://wiki.apache.org/HttpComponents/HttpClient3vsHttpClient4vsHttpCore
source
share