Я использую закрываемый объект в моем java лямбда-слое, а именно клиент высокого уровня эластичного поиска. Однако через определенное время я сталкиваюсь с IOReactorException и java .io.IOException : исключение истечения времени ожидания слушателя. Я просто хочу повторно использовать тот же экземпляр, насколько я понимаю, каждый лямбда-вызов приводит к новой конструкции клиента. Я использовал экземпляр клиента es следующим образом:
public synchronized RestHighLevelClient getInstance(String region, String esEndpoint) {
if (instance == null) {
instance = esClient(serviceName, region, esEndpoint);
}
return instance;
}
Снова на уровне я вызываю API индексации следующим образом:
IndexRequest request = new IndexRequest(indexName, "_doc").source(jsonString, XContentType.JSON);
IndexResponse response = getInstance(region, endpoint).index(request, RequestOptions.DEFAULT);
Мне интересно, должен ли я вызывать экземпляр. close () в какой-то момент. Если нет, что может вызвать проблемы с ошибками ввода-вывода?