Elasticsearch RestHighLevelClient SocketTimeoutException - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть кластер ES в Azure, и я общаюсь с ним из приложения Spring Boot, используя эластичный поиск RestHighLevelClient.

Следующим компонентом весной является

@Bean
public RestHighLevelClient elasticsearchRestClient() {
    CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
    credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));
    RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(ipAddress, port))
            .setRequestConfigCallback(builder -> builder.setConnectTimeout(10000).setSocketTimeout(90000))
            .setHttpClientConfigCallback(httpAsyncClientBuilder ->
                    httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider));
    RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);
    Sniffer sniffer = Sniffer.builder(restHighLevelClient.getLowLevelClient()).setSniffIntervalMillis(60000).build();
    return restHighLevelClient;
}

Здесь ipAddress - IP-адрес loadbalancer в кластере Azure ES, порт 9200. Проблема заключается в том, что если ES простаивает в течение нескольких минут, следующий запросES завершается с ошибкой SocketTimeoutException.

2019-09-26T07: 20: 50.228101050Z: [INFO] java.net.SocketTimeoutException: время ожидания соединения 90 000 миллисекунд при подключении http-outgoing-5 [ACTIVE] 2019-09-26T07: 20: 50.228104650Z: [ИНФО] на org.elasticsearch.client.RestClient.extractAndWrapCause (RestClient.java:773) ~ [asticsearch-rest-client-7.3.2.jar! /: 7.3.2] 2019-09-26T07: 20: 50.228108350Z: [INFO] на org.elasticsearch.client.RestClient.performRequest (RestClient.java:218) ~ [asticsearch-rest-client-7.3.2.jar! /: 7.3.2] 2019-09-26T07: 20: 50.228111750Z: [ИНФО] по адресу org.elasticsearch.client.RestClient.performRequest (RestClient.java:205) ~ [asticsearch-rest-client-7.3.2.jar! /: 7.3.2]2019-09-26T07: 20: 50.228115350Z: [INFO] на org.elasticsearch.client.RestHighLevelClient.internalPerformRequest (RestHighLevelClient.java:1454) ~ [asticsearch-rest-high-level-client-7.3.2.jar! /: 7.3.2] 2019-09-26T07: 20: 50.228118850Z: [ИНФО] в org.elasticsearch.client.RestHighLevelClient.performRequest (RestHighLevelClient.java:1439) ~ [asticsearch-rest-high-level-client-7.3.2.jar! /: 7.3.2] 2019-09-26T07: 20: 50.228122150Z: [ИНФО] вorg.elasticsearch.client.IndicesClient.exists (IndicesClient.java:784) ~ [asticsearch-rest-high-level-client-7.3.2.jar! /: 7.3.2]

Послеэтот сбой, повторная попытка завершается успешно.

Я пытался добавить сниффер в LowLevelRestClient - но безрезультатно.

В чем может быть проблема?Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...