List of usage examples for org.apache.http.impl.conn PoolingHttpClientConnectionManager setDefaultMaxPerRoute
public void setDefaultMaxPerRoute(final int max)
From source file:org.auraframework.integration.test.http.AuraResourceServletLoggingHttpTest.java
/** * test add for W-2792895/*from w ww . j a va2 s . c o m*/ also since I ask cache to log something when hit miss, this kind of verify W-2105858 as well */ @Test public void testConcurrentGetRequests() throws Exception { // I tried to use obtainGetMethod(url) then perform(HttpGet) , but // our default httpClient use BasicClientConnectionManager, which doesn't work well with MultiThread // let's use PoolingHttpClientConnectionManager instead. PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); // Increase max total connection to 200 -- just some big number cm.setMaxTotal(200); // Increase default max connection per route to 20 -- again, just some big numer cm.setDefaultMaxPerRoute(20); CloseableHttpClient httpClient = HttpClients.custom().setConnectionManager(cm).build(); String modeAndContext = getSimpleContext(Format.JS, false); String url = "/l/" + AuraTextUtil.urlencode(modeAndContext) + "/app.js"; int numOfRequest = 5; List<Request> requests = new ArrayList<>(); for (int i = 1; i <= numOfRequest; i++) { requests.add(new Request(httpClient, url)); } ExecutorService excutor = Executors.newFixedThreadPool(numOfRequest); List<Future<Integer>> responses = new ArrayList<>(); for (Request request : requests) { responses.add(excutor.submit(request)); } for (Future<Integer> response : responses) { response.get(); } int counter = 0; String message; List<LoggingEvent> logs = appender.getLog(); for (LoggingEvent le : logs) { message = le.getMessage().toString(); if (message.contains("StringsCache")) { counter++; assertTrue("get unexpected logging message for cache miss:" + message, message.contains("cache miss for key: JS:DEV:")); } } //run this test right after server is up, we get one miss. second time, what we looking for is cached already, no miss. assertTrue("we should only have no more than one cache miss, instead we have " + counter, counter <= 1); }
From source file:org.thevortex.lighting.jinks.client.WinkClient.java
/** * Basic setup for a client builder, including the connection manager. * * @return the builder//from w w w .j av a 2s. c o m */ public synchronized CloseableHttpClient getClient() { if (httpClient == null) { PoolingHttpClientConnectionManager mgr = new PoolingHttpClientConnectionManager(1, TimeUnit.MINUTES); mgr.setDefaultMaxPerRoute(5); mgr.setMaxTotal(15); HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().setConnectionManager(mgr); RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(connectionTimeout * 1000) .setSocketTimeout(socketTimeout * 1000).build(); httpClient = httpClientBuilder.setDefaultRequestConfig(requestConfig).build(); } return httpClient; }
From source file:nl.knaw.huygens.alexandria.markup.client.AlexandriaMarkupClient.java
public AlexandriaMarkupClient(final URI alexandriaMarkupURI, SSLContext sslContext) { this.alexandriaMarkupURI = alexandriaMarkupURI; final ObjectMapper objectMapper = new ObjectMapper(); objectMapper.findAndRegisterModules(); final JacksonJaxbJsonProvider jacksonProvider = new JacksonJaxbJsonProvider(); jacksonProvider.setMapper(objectMapper); PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); cm.setMaxTotal(50);/*from w ww . j a va2 s. c o m*/ cm.setDefaultMaxPerRoute(50); ApacheConnectorProvider connectorProvider = new ApacheConnectorProvider(); ClientConfig clientConfig = new ClientConfig(jacksonProvider)// .connectorProvider(connectorProvider)// .property(ApacheClientProperties.CONNECTION_MANAGER, cm)// .property(ClientProperties.CONNECT_TIMEOUT, 60000)// .property(ClientProperties.READ_TIMEOUT, 60000); if (sslContext == null) { if ("https".equals(alexandriaMarkupURI.getScheme())) { throw new RuntimeException( "SSL connections need an SSLContext, use: new AlexandriaClient(uri, sslContext) instead."); } client = ClientBuilder.newClient(clientConfig); } else { client = ClientBuilder.newBuilder()// .sslContext(sslContext)// .withConfig(clientConfig)// .build(); } rootTarget = client.target(alexandriaMarkupURI); }
From source file:org.hupo.psi.mi.psicquic.ws.SolrBasedPsicquicService.java
private HttpClient createHttpClient() { PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); cm.setMaxTotal(maxTotalConnections); cm.setDefaultMaxPerRoute(defaultMaxConnectionsPerHost); RequestConfig.Builder requestBuilder = RequestConfig.custom(); requestBuilder = requestBuilder.setConnectTimeout(connectionTimeOut); requestBuilder = requestBuilder.setSocketTimeout(soTimeOut); HttpClientBuilder builder = HttpClientBuilder.create(); builder.setDefaultRequestConfig(requestBuilder.build()); builder.setConnectionManager(cm);//from www. j av a2 s . c o m return builder.build(); }
From source file:com.aliyun.oss.common.comm.DefaultServiceClient.java
protected HttpClientConnectionManager createHttpClientConnectionManager() { SSLContext sslContext = null; try {/*from ww w . j a v a 2s. c o m*/ sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { @Override public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true; } }).build(); } catch (Exception e) { throw new ClientException(e.getMessage()); } SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE); Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create() .register(Protocol.HTTP.toString(), PlainConnectionSocketFactory.getSocketFactory()) .register(Protocol.HTTPS.toString(), sslSocketFactory).build(); PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager( socketFactoryRegistry); connectionManager.setDefaultMaxPerRoute(config.getMaxConnections()); connectionManager.setMaxTotal(config.getMaxConnections()); connectionManager.setValidateAfterInactivity(config.getValidateAfterInactivity()); connectionManager.setDefaultSocketConfig( SocketConfig.custom().setSoTimeout(config.getSocketTimeout()).setTcpNoDelay(true).build()); if (config.isUseReaper()) { IdleConnectionReaper.setIdleConnectionTime(config.getIdleConnectionTime()); IdleConnectionReaper.registerConnectionManager(connectionManager); } return connectionManager; }
From source file:org.glassfish.jersey.apache.connector.HttpMethodTest.java
protected Client createPoolingClient() { ClientConfig cc = new ClientConfig(); PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(); connectionManager.setMaxTotal(100);//from www . j av a 2 s. co m connectionManager.setDefaultMaxPerRoute(100); cc.property(ApacheClientProperties.CONNECTION_MANAGER, connectionManager); cc.connectorProvider(new ApacheConnectorProvider()); return ClientBuilder.newClient(cc); }
From source file:org.yamj.core.tools.web.PoolingHttpClientBuilder.java
@SuppressWarnings("resource") public PoolingHttpClient build() { // create proxy HttpHost proxy = null;/*from w w w .jav a 2s . c om*/ CredentialsProvider credentialsProvider = null; if (StringUtils.isNotBlank(proxyHost) && proxyPort > 0) { proxy = new HttpHost(proxyHost, proxyPort); if (StringUtils.isNotBlank(proxyUsername) && StringUtils.isNotBlank(proxyPassword)) { if (systemProperties) { credentialsProvider = new SystemDefaultCredentialsProvider(); } else { credentialsProvider = new BasicCredentialsProvider(); } credentialsProvider.setCredentials(new AuthScope(proxyHost, proxyPort), new UsernamePasswordCredentials(proxyUsername, proxyPassword)); } } PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(); connManager.setDefaultSocketConfig(SocketConfig.custom().setSoTimeout(socketTimeout).build()); connManager.setMaxTotal(connectionsMaxTotal); connManager.setDefaultMaxPerRoute(connectionsMaxPerRoute); HttpClientBuilder builder = HttpClientBuilder.create().setConnectionManager(connManager).setProxy(proxy) .setDefaultCredentialsProvider(credentialsProvider) .setDefaultRequestConfig(RequestConfig.custom() .setConnectionRequestTimeout(connectionRequestTimeout).setConnectTimeout(connectionTimeout) .setSocketTimeout(socketTimeout).setProxy(proxy).build()); // use system properties if (systemProperties) { builder.useSystemProperties(); } // build the client PoolingHttpClient wrapper = new PoolingHttpClient(builder.build(), connManager); wrapper.addGroupLimit(".*", 1); // default limit, can be overwritten if (StringUtils.isNotBlank(maxDownloadSlots)) { LOG.debug("Using download limits: {}", maxDownloadSlots); Pattern pattern = Pattern.compile(",?\\s*([^=]+)=(\\d+)"); Matcher matcher = pattern.matcher(maxDownloadSlots); while (matcher.find()) { String group = matcher.group(1); try { final Integer maxResults = Integer.valueOf(matcher.group(2)); wrapper.addGroupLimit(group, maxResults); LOG.trace("Added download slot '{}' with max results {}", group, maxResults); } catch (NumberFormatException error) { LOG.debug("Rule '{}' is no valid regexp, ignored", group); } } } return wrapper; }
From source file:com.hybris.integration.util.RestTemplateUtil.java
@PostConstruct private RestTemplate initializationTemplate() { ConnectionConfig connConfig = ConnectionConfig.custom().setCharset(Charset.forName("UTF-8")).build(); SocketConfig socketConfig = SocketConfig.custom().setSoTimeout(100000).build(); RegistryBuilder<ConnectionSocketFactory> registryBuilder = RegistryBuilder .<ConnectionSocketFactory>create(); ConnectionSocketFactory plainSF = new PlainConnectionSocketFactory(); registryBuilder.register("http", plainSF); registryBuilder.register("https", setUpSSL()); Registry<ConnectionSocketFactory> registry = registryBuilder.build(); PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(registry); connManager.setDefaultConnectionConfig(connConfig); connManager.setDefaultSocketConfig(socketConfig); connManager.setMaxTotal(1000);/*from ww w. j av a 2 s . c o m*/ connManager.setDefaultMaxPerRoute(1000); HttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connManager).build(); HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory( httpClient); clientHttpRequestFactory.setConnectTimeout(30000); clientHttpRequestFactory.setReadTimeout(30000); clientHttpRequestFactory.setConnectionRequestTimeout(30000); restTemplate = new RestTemplate(); restTemplate.setRequestFactory(clientHttpRequestFactory); restTemplate.setErrorHandler(new DefaultResponseErrorHandler()); return restTemplate; }
From source file:com.northernwall.hadrian.Main.java
private void startHttpClient() { try {/*from www . j a va2s . c o m*/ int maxConnections = Integer.parseInt(properties.getProperty("http.maxConnections", "100")); int maxPerRoute = Integer.parseInt(properties.getProperty("http.maxPerRoute", "10")); int socketTimeout = Integer.parseInt(properties.getProperty("http.socketTimeout", "1000")); int connectionTimeout = Integer.parseInt(properties.getProperty("http.connectionTimeout", "1000")); RegistryBuilder<ConnectionSocketFactory> registryBuilder = RegistryBuilder .<ConnectionSocketFactory>create(); Registry<ConnectionSocketFactory> registry = registryBuilder .register("http", PlainConnectionSocketFactory.INSTANCE).build(); PoolingHttpClientConnectionManager ccm = new PoolingHttpClientConnectionManager(registry); ccm.setMaxTotal(maxConnections); ccm.setDefaultMaxPerRoute(maxPerRoute); HttpClientBuilder clientBuilder = HttpClients.custom().setConnectionManager(ccm) .setDefaultConnectionConfig(ConnectionConfig.custom().setCharset(Consts.UTF_8).build()) .setDefaultRequestConfig(RequestConfig.custom().setSocketTimeout(socketTimeout) .setConnectTimeout(connectionTimeout).build()); client = clientBuilder.build(); } catch (NumberFormatException nfe) { throw new IllegalStateException("Error Creating HTTPClient, could not parse property"); } catch (Exception e) { throw new IllegalStateException("Error Creating HTTPClient: ", e); } }
From source file:com.hybris.datahub.outbound.utils.RestTemplateUtil.java
private RestTemplate initializationTemplate() { final ConnectionConfig connConfig = ConnectionConfig.custom().setCharset(Charset.forName("UTF-8")).build(); final SocketConfig socketConfig = SocketConfig.custom().setSoTimeout(100000).build(); final RegistryBuilder<ConnectionSocketFactory> registryBuilder = RegistryBuilder .<ConnectionSocketFactory>create(); final ConnectionSocketFactory plainSF = new PlainConnectionSocketFactory(); registryBuilder.register("http", plainSF); registryBuilder.register("https", setUpSSL()); final Registry<ConnectionSocketFactory> registry = registryBuilder.build(); final PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(registry); connManager.setDefaultConnectionConfig(connConfig); connManager.setDefaultSocketConfig(socketConfig); connManager.setMaxTotal(1000);/*ww w . ja v a 2s. c o m*/ connManager.setDefaultMaxPerRoute(1000); final HttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connManager).build(); final HttpComponentsClientHttpRequestFactory clientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory( httpClient); clientHttpRequestFactory.setConnectTimeout(50000); clientHttpRequestFactory.setReadTimeout(30000); // clientHttpRequestFactory.setConnectionRequestTimeout(200); restTemplate = new RestTemplate(); restTemplate.setRequestFactory(clientHttpRequestFactory); restTemplate.setErrorHandler(new DefaultResponseErrorHandler()); return restTemplate; }