First and foremost: CloseableHttpAsyncClient
instances are very expensive. Please do NOT create a new CloseableHttpAsyncClient
for each and every request. It is like creating a new browser process for each link click, is completely wasteful and is very slow. It is strongly recommended to use the same CloseableHttpAsyncClient
instance for the entire lifespan of a logical component.
Pretty much in all cases a blocking client is likely to be considerably faster than a non-blocking (NIO based) one (as long as the number of concurrent requests is below, say, 1000). Unless you are building a proxy of some sort you might be much better served by a blocking HTTP client such as Apache HttpClient.