public static PoolingNHttpClientConnectionManager createConnectionManager()

in src/main/java/com/aliyun/mns/common/http/HttpFactory.java [106:142]


    public static PoolingNHttpClientConnectionManager createConnectionManager(ClientConfiguration config) {
        // Set HTTP params.
        // Create I/O reactor configuration
        IOReactorConfig ioReactorConfig = IOReactorConfig.custom()
            .setIoThreadCount(config.getIoReactorThreadCount())
            .setConnectTimeout(config.getConnectionTimeout())
            .setSoTimeout(config.getSocketTimeout())
            .setSoKeepAlive(config.isSoKeepAlive()).build();

        // Create a custom I/O reactort
        DefaultConnectingIOReactor ioReactor;
        try {
            ioReactor = new DefaultConnectingIOReactor(ioReactorConfig);
            ioReactor.setExceptionHandler(new IOReactorExceptionHandler() {
                @Override
                public boolean handle(IOException ex) {
                    logger.error("I/O error", ex);
                    return true;
                }

                @Override
                public boolean handle(RuntimeException ex) {
                    logger.error("I/O runtime error", ex);
                    return true;
                }
            });
        } catch (IOReactorException e) {
            throw new RuntimeException(e);
        }

        PoolingNHttpClientConnectionManager connManager = new PoolingNHttpClientConnectionManager(
            ioReactor);
        connManager.setDefaultMaxPerRoute(config.getMaxConnectionsPerRoute());
        connManager.setMaxTotal(config.getMaxConnections());

        return connManager;
    }