title: Spring configurable, high performance, metered http client instances
body: <p>Coming from DropWizard I am used to its <a href="https://dropwizard.github.io/dropwizard/manual/client.html" rel="nofollow">HttpClientConfiguration</a> and I am baffled that in Spring Boot I cannot find some support for controlling in a similar manner http clients instances to be used, by RestTemplates for example.</p>
  
  <p>To work in production the underlying client implementation should be high performance (e.g. non blocking io, with connection reuse and pooling).</p>
  
  <p>Then I need to set timeouts or authentication, possibly metrics gathering, cookie settings, SSL certificates settings.</p>
  
  <p>All of the above should be easy to set up in different variants for different instances to be used in different contexts (e.g. for service X use these settings and this pool, for Y use another pool and settings) and most parameters should be set via environment-specific properties to have different values in production/qa/development.</p>
  
  <p>Is there something that can be used towards this end?</p>