Hi Sreyan, It's a little bit not clear what is compared, as you provided only one code snippet. PoolingHttpClientConnectionManager is used even if you create HttpClient with HttpClients.createDefault(), just parameters are different.
A performance benefit can happen if the services called support persistent connections <https://en.wikipedia.org/wiki/HTTP_persistent_connection>. In order to understand what happens you can enable debug logging for HttpClient. Regards, Alex On Sun, Jun 17, 2018 at 12:33 AM Sreyan Chakravarty < sreyan.mail...@gmail.com> wrote: > Hi, > > I am using Apache HTTP Client with Springs Rest Template service to have > connection pooling implemented for my REST Client. The code for connection > pooling is from the documentation and is similar to this-: > > PoolingHttpClientConnectionManager cm = new > PoolingHttpClientConnectionManager(); > > cm.setMaxTotal(200); > > cm.setDefaultMaxPerRoute(20); > > HttpHost host = new HttpHost("java.com", 80); > cm.setMaxPerRoute(new HttpRoute(host), 50); > > CloseableHttpClient httpClient = HttpClients.custom() > .setConnectionManager(cm) > .build(); > > I got this code from : > https://hc.apache.org/httpcomponents-client-ga/tutorial/html/connmgmt.html > > Making REST calls with and without connection pooling gives no performance > benefits. My REST calls still need 1.3ms to complete even if I make them > one after the other. > > Am I doing something wrong? Is this the correct way to implement HTTP > Connection Pooling? > > *Does HTTP Connection Pooling mean that subsequent HTTP requests on the > same thread will happen faster?* > > Thanks, > Sreyan >