Невозможно выполнить HTTP-запрос: операция получения заняла больше времени, чем настроенное максимальное время.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно выполнить HTTP-запрос: операция получения заняла больше времени, чем настроенное максимальное время.

Сообщение Anonymous »

Я запускаю пакетное задание в AWS, которое получает сообщения из очереди SQS и записывает их в тему Kafka с помощью akka. Я создал асинхронный клиент Sqs со следующими параметрами:

Код: Выделить всё

private static SqsAsyncClient getSqsAsyncClient(final Config configuration, final String awsRegion) {
var asyncHttpClientBuilder = NettyNioAsyncHttpClient.builder()
.maxConcurrency(100)
.maxPendingConnectionAcquires(10_000)
.connectionMaxIdleTime(Duration.ofSeconds(60))
.connectionTimeout(Duration.ofSeconds(30))
.connectionAcquisitionTimeout(Duration.ofSeconds(30))
.readTimeout(Duration.ofSeconds(30));

return SqsAsyncClient.builder()
.region(Region.of(awsRegion))
.httpClientBuilder(asyncHttpClientBuilder)
.endpointOverride(URI.create("https://sqs.us-east-1.amazonaws.com/000000000000")).build();
}

private static SqsSourceSettings getSqsSourceSettings(final Config configuration) {
final SqsSourceSettings sqsSourceSettings = SqsSourceSettings.create().withCloseOnEmptyReceive(false);
if (configuration.hasPath(ConfigPaths.SqsSource.MAX_BATCH_SIZE)) {
sqsSourceSettings.withMaxBatchSize(10);
}
if (configuration.hasPath(ConfigPaths.SqsSource.MAX_BUFFER_SIZE)) {
sqsSourceSettings.withMaxBufferSize(1000);
}
if (configuration.hasPath(ConfigPaths.SqsSource.WAIT_TIME_SECS)) {
sqsSourceSettings.withWaitTime(Duration.of(20, SECONDS));
}

return sqsSourceSettings;
}
Но при выполнении пакетного задания я получаю следующее исключение AWS SDK:

software.amazon.awssdk. core.Exception.SdkClientException: невозможно выполнить HTTP-запрос: операция получения заняла больше времени, чем настроенное максимальное время. Это означает, что запрос не может получить соединение из пула в течение указанного максимального времени. Это может быть связано с высокой частотой запросов.

Похоже, что исключение по-прежнему возникает даже после того, как я пытаюсь настроить упомянутые здесь параметры:

Чтобы устранить проблему, рассмотрите возможность выполнения любого из следующих действий: увеличьте максимальное количество подключений, увеличьте время ожидания получения или замедлите скорость запросов. Увеличение максимального количества подключений может увеличить пропускную способность клиента (если сетевой интерфейс уже не используется полностью), но в конечном итоге может привести к нарушению ограничений операционной системы на количество файловых дескрипторов, используемых процессом. Если вы уже полностью используете свой сетевой интерфейс или не можете дополнительно увеличить количество подключений, увеличение тайм-аута получения дает дополнительное время для запросов на получение соединения до истечения времени ожидания. Если соединения не освобождаются, время ожидания последующих запросов все равно будет истекать. Если вышеуказанные механизмы не могут решить проблему, попробуйте сгладить запросы, чтобы большие всплески трафика не перегружали клиент, повышая эффективность за счет количества вызовов AWS или увеличения количества хостов, отправляющих запросы.

Кто-нибудь сталкивался с этой проблемой раньше?

Подробнее здесь: https://stackoverflow.com/questions/683 ... -configure
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»