Java Platform SDK connection pooling and thread-safe client config

How does the Java Platform SDK actually handle connection pooling under heavy load? We’ve got a service hammering /api/v2/notifications/events and the default DefaultHttpClient keeps dropping sockets. I swapped in ApacheHttpClient with setMaxConnPerRoute(50), but the thread pool still chokes. The HttpClientConfig overrides are pretty vague. Here’s what I’ve got so far:

config.setHttpClient(ApacheHttpClient.builder().build());

Anyway, the timeout errors keep spiking.