class DefaultHttpRequestProcessor extends ReportDecider {

    static CloseableHttpClient getHttpClent() {
        if (httpClientCache != null) {
            return httpClientCache;
        }
        if (httpClientInitialized.compareAndSet(false, true)) {
            final PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();
            connManager.setDefaultMaxPerRoute(2);
            connManager.setMaxTotal(4);
            httpClientCache = HttpClientBuilder.create().setConnectionManager(connManager)
                .setRetryHandler(new DefaultHttpRequestRetryHandler(1, false))
                .setUserAgent(CLIENT_VERSION).build();
            clearIdleConnectionsTask = new Runnable() {
                @Override
                public void run() {
                    try {
                        connManager.closeIdleConnections(30, TimeUnit.SECONDS);
                        connManager.closeExpiredConnections();
                    } catch (Throwable e) {
                        logger.warn("fail to close idle connections.{}", e.getMessage());
                    }
                }
            };
            return httpClientCache;
        }
        return null; //发生并发初始化情况;
    }

    public  DefaultHttpRequestProcessor(AddressService addressService, MetricConfig metricConfig);

}