Ниже приведен компонент My ApacheHttpClient Spring, и мне интересно, подходит ли моя конфигурация для производства или мне нужно настроить какие-либо конфигурации? Может кто-нибудь поделиться информацией, если вы используете последнюю версию Apache Http-клиента в производстве
@Service
public class ApacheHttpClient implements IHttpClient {
private static final Logger LOGGER = Logger
.getInstance(ApacheHttpClient.class);
private static final int DEFAULT_MAX_TOTAL_CONNECTIONS = 400;
private static final int DEFAULT_IDLE_CONNECTION_EVICTION_FREQUENCY_SECONDS = 300;
private static final int DEFAULT_MAX_CONNECTIONS_PER_ROUTE = DEFAULT_MAX_TOTAL_CONNECTIONS;
private static final int DEFAULT_CONNECTION_TIMEOUT_MILLISECONDS = (60 * 1000);
private static final int DEFAULT_READ_TIMEOUT_MILLISECONDS = (4 * 60 * 1000);
private static final int DEFAULT_WAIT_TIMEOUT_MILLISECONDS = (60 * 1000);
private static final int DEFAULT_VALIDATE_AFTER_INACTIVITY_MILLISECONDS = (5 * 60 * 1000);
private static final int DEFAULT_KEEP_ALIVE_MILLISECONDS = (5 * 60 * 1000);
private static final int DEFAULT_REQUEST_RETRY = 2;
@Autowired
private SSLContextHelper customSSLContext;
private int keepAlive = DEFAULT_KEEP_ALIVE_MILLISECONDS;
private int maxTotalConnections = DEFAULT_MAX_TOTAL_CONNECTIONS;
private int maxConnectionsPerRoute = DEFAULT_MAX_CONNECTIONS_PER_ROUTE;
private int connectTimeout = DEFAULT_CONNECTION_TIMEOUT_MILLISECONDS;
private int readTimeout = DEFAULT_READ_TIMEOUT_MILLISECONDS;
private int waitTimeout = DEFAULT_WAIT_TIMEOUT_MILLISECONDS;
private int requestRetry = DEFAULT_REQUEST_RETRY;
private CloseableHttpClient httpClient;
private ConnectionKeepAliveStrategy keepAliveStrategy = (response,
context) -> {
HeaderElementIterator it = new BasicHeaderElementIterator(
response.headerIterator(
HTTP.CONN_KEEP_ALIVE));
while (it
.hasNext()) {
HeaderElement he = it
.nextElement();
String param = he
.getName();
String value = he
.getValue();
if (value != null
&& param.equalsIgnoreCase(
"timeout")) {
try {
return Long
.parseLong(
value)
* 1000;
} catch (NumberFormatException ignore) {}
}
}
return keepAlive;
};
@PostConstruct
public void initializeApacheHttpClient() {
// config timeout
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(connectTimeout)
.setConnectionRequestTimeout(waitTimeout)
.setSocketTimeout(readTimeout).build();
Registry socketFactoryRegistry = RegistryBuilder. create()
.register("http", PlainConnectionSocketFactory.INSTANCE)
.register("https", new SSLConnectionSocketFactory(customSSLContext.getSSLContext())).build();
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
connManager.setMaxTotal(maxTotalConnections);
// Increase default max connection per route
connManager.setDefaultMaxPerRoute(maxConnectionsPerRoute);
// Defines period of inactivity in milliseconds after which persistent connections must be re-validated prior to
// being reused
connManager.setValidateAfterInactivity(DEFAULT_VALIDATE_AFTER_INACTIVITY_MILLISECONDS);
httpClient = HttpClients.custom().setKeepAliveStrategy(keepAliveStrategy).setConnectionManager(connManager)
.setConnectionManagerShared(true).setSSLContext(customSSLContext.getSSLContext())
.setDefaultRequestConfig(config)
.setRetryHandler(new DefaultHttpRequestRetryHandler(requestRetry, true))
.build();
// detect idle and expired connections and close them
IdleConnectionEvictor staleMonitor = new IdleConnectionEvictor(connManager, DEFAULT_IDLE_CONNECTION_EVICTION_FREQUENCY_SECONDS);
staleMonitor.start();
LOGGER.log(Level.INFO, "Initialize ApacheHttpClient is successful");
}
}
Подробнее здесь: https://stackoverflow.com/questions/624 ... production
Рекомендации по настройке Apache Http Client 4.5.11 в производстве [закрыто] ⇐ JAVA
Программисты JAVA общаются здесь
1722539353
Anonymous
Ниже приведен компонент My ApacheHttpClient Spring, и мне интересно, подходит ли моя конфигурация для производства или мне нужно настроить какие-либо конфигурации? Может кто-нибудь поделиться информацией, если вы используете последнюю версию Apache Http-клиента в производстве
@Service
public class ApacheHttpClient implements IHttpClient {
private static final Logger LOGGER = Logger
.getInstance(ApacheHttpClient.class);
private static final int DEFAULT_MAX_TOTAL_CONNECTIONS = 400;
private static final int DEFAULT_IDLE_CONNECTION_EVICTION_FREQUENCY_SECONDS = 300;
private static final int DEFAULT_MAX_CONNECTIONS_PER_ROUTE = DEFAULT_MAX_TOTAL_CONNECTIONS;
private static final int DEFAULT_CONNECTION_TIMEOUT_MILLISECONDS = (60 * 1000);
private static final int DEFAULT_READ_TIMEOUT_MILLISECONDS = (4 * 60 * 1000);
private static final int DEFAULT_WAIT_TIMEOUT_MILLISECONDS = (60 * 1000);
private static final int DEFAULT_VALIDATE_AFTER_INACTIVITY_MILLISECONDS = (5 * 60 * 1000);
private static final int DEFAULT_KEEP_ALIVE_MILLISECONDS = (5 * 60 * 1000);
private static final int DEFAULT_REQUEST_RETRY = 2;
@Autowired
private SSLContextHelper customSSLContext;
private int keepAlive = DEFAULT_KEEP_ALIVE_MILLISECONDS;
private int maxTotalConnections = DEFAULT_MAX_TOTAL_CONNECTIONS;
private int maxConnectionsPerRoute = DEFAULT_MAX_CONNECTIONS_PER_ROUTE;
private int connectTimeout = DEFAULT_CONNECTION_TIMEOUT_MILLISECONDS;
private int readTimeout = DEFAULT_READ_TIMEOUT_MILLISECONDS;
private int waitTimeout = DEFAULT_WAIT_TIMEOUT_MILLISECONDS;
private int requestRetry = DEFAULT_REQUEST_RETRY;
private CloseableHttpClient httpClient;
private ConnectionKeepAliveStrategy keepAliveStrategy = (response,
context) -> {
HeaderElementIterator it = new BasicHeaderElementIterator(
response.headerIterator(
HTTP.CONN_KEEP_ALIVE));
while (it
.hasNext()) {
HeaderElement he = it
.nextElement();
String param = he
.getName();
String value = he
.getValue();
if (value != null
&& param.equalsIgnoreCase(
"timeout")) {
try {
return Long
.parseLong(
value)
* 1000;
} catch (NumberFormatException ignore) {}
}
}
return keepAlive;
};
@PostConstruct
public void initializeApacheHttpClient() {
// config timeout
RequestConfig config = RequestConfig.custom()
.setConnectTimeout(connectTimeout)
.setConnectionRequestTimeout(waitTimeout)
.setSocketTimeout(readTimeout).build();
Registry socketFactoryRegistry = RegistryBuilder. create()
.register("http", PlainConnectionSocketFactory.INSTANCE)
.register("https", new SSLConnectionSocketFactory(customSSLContext.getSSLContext())).build();
PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
connManager.setMaxTotal(maxTotalConnections);
// Increase default max connection per route
connManager.setDefaultMaxPerRoute(maxConnectionsPerRoute);
// Defines period of inactivity in milliseconds after which persistent connections must be re-validated prior to
// being reused
connManager.setValidateAfterInactivity(DEFAULT_VALIDATE_AFTER_INACTIVITY_MILLISECONDS);
httpClient = HttpClients.custom().setKeepAliveStrategy(keepAliveStrategy).setConnectionManager(connManager)
.setConnectionManagerShared(true).setSSLContext(customSSLContext.getSSLContext())
.setDefaultRequestConfig(config)
.setRetryHandler(new DefaultHttpRequestRetryHandler(requestRetry, true))
.build();
// detect idle and expired connections and close them
IdleConnectionEvictor staleMonitor = new IdleConnectionEvictor(connManager, DEFAULT_IDLE_CONNECTION_EVICTION_FREQUENCY_SECONDS);
staleMonitor.start();
LOGGER.log(Level.INFO, "Initialize ApacheHttpClient is successful");
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/62438928/best-practices-for-apache-http-client-4-5-11-configuration-in-production[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия