public MetricFetcher() { int cores = Runtime.getRuntime().availableProcessors() * 2; long keepAliveTime = 0; int queueSize = 2048; RejectedExecutionHandler handler = new DiscardPolicy(); fetchService = new ThreadPoolExecutor(cores, cores, keepAliveTime, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(queueSize), new NamedThreadFactory("sentinel-dashboard-metrics-fetchService"), handler); fetchWorker = new ThreadPoolExecutor(cores, cores, keepAliveTime, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(queueSize), new NamedThreadFactory("sentinel-dashboard-metrics-fetchWorker"), handler); IOReactorConfig ioConfig = IOReactorConfig.custom() .setConnectTimeout(3000) .setSoTimeout(3000) .setIoThreadCount(Runtime.getRuntime().availableProcessors() * 2) .build(); httpclient = HttpAsyncClients.custom() .setRedirectStrategy(new DefaultRedirectStrategy() { @Override protected boolean isRedirectable(final String method) { return false; } }).setMaxConnTotal(4000) .setMaxConnPerRoute(1000) .setDefaultIOReactorConfig(ioConfig) .build(); httpclient.start(); start(); }
public SentinelApiClient() { IOReactorConfig ioConfig = IOReactorConfig.custom().setConnectTimeout(3000).setSoTimeout(10000) .setIoThreadCount(Runtime.getRuntime().availableProcessors() * 2).build(); httpClient = HttpAsyncClients.custom().setRedirectStrategy(new DefaultRedirectStrategy() { @Override protected boolean isRedirectable(final String method) { return false; } }).setMaxConnTotal(4000).setMaxConnPerRoute(1000).setDefaultIOReactorConfig(ioConfig).build(); httpClient.start(); }
.disableAuthCaching() .setMaxConnPerRoute(client.maxConnPerRoute()) .setMaxConnTotal(client.maxConnTotal()) .setConnectionReuseStrategy(reuseStrategy) .setRedirectStrategy(client.followRedirects() ? new DefaultRedirectStrategy() : NO_REDIRECTS);
@Override public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) { httpClientBuilder.setMaxConnTotal(pool); return httpClientBuilder; }
private CloseableHttpAsyncClient createHttpClient() { //default timeouts are all infinite RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() .setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLIS) .setSocketTimeout(DEFAULT_SOCKET_TIMEOUT_MILLIS) .setConnectionRequestTimeout(DEFAULT_CONNECTION_REQUEST_TIMEOUT_MILLIS); if (requestConfigCallback != null) { requestConfigBuilder = requestConfigCallback.customizeRequestConfig(requestConfigBuilder); } HttpAsyncClientBuilder httpClientBuilder = HttpAsyncClientBuilder.create().setDefaultRequestConfig(requestConfigBuilder.build()) //default settings for connection pooling may be too constraining .setMaxConnPerRoute(DEFAULT_MAX_CONN_PER_ROUTE).setMaxConnTotal(DEFAULT_MAX_CONN_TOTAL); if (httpClientConfigCallback != null) { httpClientBuilder = httpClientConfigCallback.customizeHttpClient(httpClientBuilder); } return httpClientBuilder.build(); }
private CloseableHttpAsyncClient createHttpClient() { //default timeouts are all infinite RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() .setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLIS) .setSocketTimeout(DEFAULT_SOCKET_TIMEOUT_MILLIS) .setConnectionRequestTimeout(DEFAULT_CONNECTION_REQUEST_TIMEOUT_MILLIS); if (requestConfigCallback != null) { requestConfigBuilder = requestConfigCallback.customizeRequestConfig(requestConfigBuilder); } try { HttpAsyncClientBuilder httpClientBuilder = HttpAsyncClientBuilder.create().setDefaultRequestConfig(requestConfigBuilder.build()) //default settings for connection pooling may be too constraining .setMaxConnPerRoute(DEFAULT_MAX_CONN_PER_ROUTE).setMaxConnTotal(DEFAULT_MAX_CONN_TOTAL) .setSSLContext(SSLContext.getDefault()); if (httpClientConfigCallback != null) { httpClientBuilder = httpClientConfigCallback.customizeHttpClient(httpClientBuilder); } final HttpAsyncClientBuilder finalBuilder = httpClientBuilder; return AccessController.doPrivileged(new PrivilegedAction<CloseableHttpAsyncClient>() { @Override public CloseableHttpAsyncClient run() { return finalBuilder.build(); } }); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException("could not create the default ssl context", e); } }
/** * Creates a new HTTP method client. * * @param connectionTimeout The connection timeout (in milliseconds) that should be used. * @param socketTimeout The socket timeout (in milliseconds) that should be used. * @param requestTimeout The request timeout (in milliseconds) that should be used. */ public HttpMethodClient(final int connectionTimeout, final int socketTimeout, final int requestTimeout) { final RequestConfig config = RequestConfig.custom() .setConnectTimeout(connectionTimeout) .setConnectionRequestTimeout(connectionTimeout) .setSocketTimeout(socketTimeout) .setRedirectsEnabled(false) .build(); this.httpClient = HttpAsyncClients.custom() .setDefaultRequestConfig(config) .setMaxConnPerRoute(MAX_CONNECTIONS_PER_ROUTE) .setMaxConnTotal(MAX_CONNECTIONS) .build(); this.httpClient.start(); this.requestTimeout = requestTimeout; }
@Bean public AsyncClientHttpRequestFactory asyncClientHttpRequestFactory( NHttpClientConnectionManager clientConnectionManager, @Value("${http.client.maxConnTotal:1024}") int maxConnTotal, @Value("${http.client.maxConnPerRoute:1024}") int maxConnPerRoute) throws InterruptedException { CloseableHttpAsyncClient client = HttpAsyncClientBuilder.create() // Some backends will return a cookie and prefer it to the Authorization header. // This is very bad when we re-use a connection for different users! .disableCookieManagement() .setMaxConnTotal(maxConnTotal) .setMaxConnPerRoute(maxConnPerRoute) .setConnectionManager(clientConnectionManager) .build(); return new HttpComponentsAsyncClientHttpRequestFactory(client); }
/** * Create an instance with the passed in client configuration. To install a different default {@link SerializationFactory}, define property * {@link CommonClientConfigKey#DefaultSerializationFactoryClassName} in the configuration. An instance of {@link CloseableHttpAsyncClient} * will be created and started. * * @param clientConfig */ @SuppressWarnings("unchecked") public RibbonHttpAsyncClient(IClientConfig clientConfig) { int connectTimeout = clientConfig.getPropertyAsInteger(CommonClientConfigKey.ConnectTimeout, DefaultClientConfigImpl.DEFAULT_CONNECT_TIMEOUT); RequestConfig requestConfig = RequestConfig.custom() .setConnectTimeout(connectTimeout) .setSocketTimeout(clientConfig.getPropertyAsInteger(CommonClientConfigKey.ReadTimeout, DefaultClientConfigImpl.DEFAULT_READ_TIMEOUT)) .setConnectionRequestTimeout(connectTimeout) .build(); httpclient = HttpAsyncClients.custom().setDefaultRequestConfig(requestConfig) .setMaxConnTotal(clientConfig.getPropertyAsInteger(CommonClientConfigKey.MaxTotalHttpConnections, DefaultClientConfigImpl.DEFAULT_MAX_TOTAL_HTTP_CONNECTIONS)) .setMaxConnPerRoute(clientConfig.getPropertyAsInteger(CommonClientConfigKey.MaxHttpConnectionsPerHost, DefaultClientConfigImpl.DEFAULT_MAX_HTTP_CONNECTIONS_PER_HOST)) .build(); String serializationFactoryClass = clientConfig.getPropertyAsString(CommonClientConfigKey.DefaultSerializationFactoryClassName, JacksonSerializationFactory.class.getName()); if (serializationFactoryClass != null) { try { factories.add((SerializationFactory<ContentTypeBasedSerializerKey>) Class.forName(serializationFactoryClass).newInstance()); } catch (Exception e) { throw new RuntimeException("Unable to instantiate serialization factory", e); } } httpclient.start(); }
static public void start() { if (client == null) { synchronized (DEFAULT_CALL_BACK) { if (client == null) { HttpAsyncClientBuilder create = HttpAsyncClientBuilder.create(); create.setMaxConnTotal(1000); create.setMaxConnPerRoute(1000); client = create.build(); client.start(); } } } }
private CloseableHttpAsyncClient createHttpClient() { //default timeouts are all infinite RequestConfig.Builder requestConfigBuilder = RequestConfig.custom() .setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLIS) .setSocketTimeout(DEFAULT_SOCKET_TIMEOUT_MILLIS); if (requestConfigCallback != null) { requestConfigBuilder = requestConfigCallback.customizeRequestConfig(requestConfigBuilder); } try { HttpAsyncClientBuilder httpClientBuilder = HttpAsyncClientBuilder.create().setDefaultRequestConfig(requestConfigBuilder.build()) //default settings for connection pooling may be too constraining .setMaxConnPerRoute(DEFAULT_MAX_CONN_PER_ROUTE).setMaxConnTotal(DEFAULT_MAX_CONN_TOTAL) .setSSLContext(SSLContext.getDefault()) .setTargetAuthenticationStrategy(new PersistentCredentialsAuthenticationStrategy()); if (httpClientConfigCallback != null) { httpClientBuilder = httpClientConfigCallback.customizeHttpClient(httpClientBuilder); } final HttpAsyncClientBuilder finalBuilder = httpClientBuilder; return AccessController.doPrivileged(new PrivilegedAction<CloseableHttpAsyncClient>() { @Override public CloseableHttpAsyncClient run() { return finalBuilder.build(); } }); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException("could not create the default ssl context", e); } }
private HttpAsyncClientBuilder customizeHttpClientConfig(ConfigurationPropertySource propertySource, ServerUris hosts, HttpAsyncClientBuilder builder) { builder = builder .setMaxConnTotal( MAX_TOTAL_CONNECTION.get( propertySource ) ) .setMaxConnPerRoute( MAX_TOTAL_CONNECTION_PER_ROUTE.get( propertySource ) ) .setThreadFactory( new SearchThreadFactory( "Elasticsearch transport thread" ) );
private HttpAsyncClientBuilder customizeHttpClientConfig(ConfigurationPropertySource propertySource, ServerUris hosts, HttpAsyncClientBuilder builder) { builder = builder .setMaxConnTotal( MAX_TOTAL_CONNECTION.get( propertySource ) ) .setMaxConnPerRoute( MAX_TOTAL_CONNECTION_PER_ROUTE.get( propertySource ) ) .setThreadFactory( new SearchThreadFactory( "Elasticsearch transport thread" ) );
@VisibleForTesting public Sender(String apiKey, int retryCount, String url) { ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); this.url = url; this.authorizationHeader = String.format("key=%s", apiKey); this.client = HttpAsyncClients.custom() .setMaxConnTotal(100) .setMaxConnPerRoute(10) .build(); this.executor = new AsyncRetryExecutor(scheduler).retryOn(ServerFailedException.class) .retryOn(TimeoutException.class) .retryOn(IOException.class) .withExponentialBackoff(100, 2.0) .withUniformJitter() .withMaxDelay(4000) .withMaxRetries(retryCount); this.client.start(); }
.setMaxConnTotal( cubeBuilder.getMaxTotalConnections() ) //
private HttpAsyncClientBuilder customizeHttpClientConfig(Properties properties, ServerUris hosts, HttpAsyncClientBuilder builder) { builder = builder .setMaxConnTotal( ConfigurationParseHelper.getIntValue( properties, ElasticsearchEnvironment.MAX_TOTAL_CONNECTION,
private HttpAsyncClientBuilder customizeHttpClientConfig(Properties properties, ServerUris hosts, HttpAsyncClientBuilder builder) { builder = builder .setMaxConnTotal( ConfigurationParseHelper.getIntValue( properties, ElasticsearchEnvironment.MAX_TOTAL_CONNECTION,
public static CloseableHttpAsyncClient getClient() { synchronized (HttpClientConnector.class) { if (asyncHttpClient == null ) { asyncHttpClient = HttpAsyncClients.custom() .setMaxConnPerRoute(MAX_CONN_PER_ROUTE) .setMaxConnTotal(MAX_CONN_TOTAL) .setDefaultIOReactorConfig( IOReactorConfig.custom() .setIoThreadCount(4) .setSoKeepAlive(true) .setSoReuseAddress(true) .build() ).build(); asyncHttpClient.start(); } return asyncHttpClient; } }
.setConnectionManager(connManager) .setMaxConnPerRoute(2) .setMaxConnTotal(2) .setUserAgent("ApacheJMeter"+JMeterUtils.getJMeterVersion()) .disableCookieManagement()
HttpAsyncClientBuilder clientBuilder = HttpAsyncClients.custom(); clientBuilder.setMaxConnPerRoute(clientOptions.getMaxConnectionsPerRoute()); clientBuilder.setMaxConnTotal(clientOptions.getMaxConnectionsTotal());