AWS SQS 消息推送需要 50 秒

AWS SQS message push taking 50 secs

提问人:Ashish Gupta 提问时间:11/10/2023 最后编辑:Mark BAshish Gupta 更新时间:11/11/2023 访问量:30

问:

对于某些请求,sqsClient 发送消息需要 50+ 秒才能将消息推送到 SQS 队列中。 如何传递 CLientConfiguration,以便快速发生超时并相应地重试。 已尝试所有可能的解决方案来减少 50 秒的超时,但没有任何效果。

原木:-

2023-06-23 13:30:30.873 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG com.amazonaws.request.executeOneRequest(1288) - Sending Request: POST https://sqs.ap-south-1.amazonaws.com /444121746292/PROD_OA_COMMUNICATION_H
2023-06-23 13:30:30.874 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.auth.AWS4Signer.debug(33) - AWS4 Canonical Request: '"POST
/444121746292/PROD_OA_COMMUNICATION_H

amz-sdk-invocation-id:e7a34898-7848-0029-5fd0-a284535470da
amz-sdk-request:ttl=20230623T080120Z;**attempt**=1;max=4
amz-sdk-retry:0/0/500
host:sqs.ap-south-1.amazonaws.com
user-agent:aws-sdk-java/1.12.490 Linux/5.10.165-143.735.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/17.0.7+7-alpine-r1 java/17.0.7 vendor/Alpine cfg/retry-mode/legacy AmazonSQSBufferedAsyncClient/1.12.490
x-amz-date:20230623T080030Z
x-amz-security-token:IQoJb3JpZ2luX2VjEI///////////wEaCmFwLXNvdXRoLTEiRjBEAiAnaJ0NuFAaztjCool5DK7emjRy4WVEbHb+s8p5Mqp6kwIgdPjfy+HfGDHjt0PrFXLnLWZ3OgkPmDBSTrLh4bq6QfwqyAUI6P//////////ARAAGgw0NDQxMjE3NDYyOTIiDB8XnO0E0Stourxw9yqcBbvuHJYDeSxgjT0vPsl626mPotXpJkyxWc8O+ReAeCib+7lZDwVf5gdwSiv4cJz5f/2Opv+TMlhPe4vsggzx/kedGabPm3/D5ucObYWEIvIYnwFMRNnrKbdI673rs05yw5TlToUPn5oYuwOKyFYlXH51okvv+xXmq9werRS5x9ZX1ubbLjpQ1wT6pk8Dro6f6bxmBGocPqQkhFZl8kjzIGR3Tuwh27B3NC4vI+RAkJ75Lt8uMtamXz+Gq3RJmVvtw1F4heOU/iFYg+XRMuDsltQrLEyZP15QZkv/7tTDOzpgsDk9PPeQbng9EadjzLZXqbvsnUZw2arEAab7svqTWfh0YHDo8W5xVK+4mwvK16GXMv48Z1+KUTk9mDY6ZPSc3kHqCvg5NkybmYsb1AhRsiDGZ84ZU5f0Uf/Fa6U1ZGTEZGhrbdcSVAxHKX23QuAO8jHrKMFjm71hWar75uBjMxHUR57E5DTC7x8GUCRCP0zafHmyenrzB4wJA8hDlqZYog5+odxchNLQZtm7sait2T4BRrosr3WtsKv3/eDxsAGb/LxC5mRHbH5g4fw5X2Kk80/bXatBG5KWjhL7Hczrj8DTEV50+zpG848lZCBHz1k6Dwm6mZS8HNHu0UvdFbXqcsC3YAtdI7w8qswInIBBczjntqzc9TGi1t6lMmoFSuDRgYewq7sI7nRPzfPYs3yvjPz7hbZTYvEQx1uHPJem+Uu4d5oiFpMo16qfJMhrt2KIb9q0ZKHLnyok0amDZtvzlq7rQqG5HsP/WwSo2DqgCCUfFIa+6XgKhgTNIs4GnNjBabz07Wjlimp/8mnVaUOHhq7bs58GSL9nZymGAX9fKJunZFiZcs1M4YqGwB8r5IEVfWEHNZB/h5tRWQVhMICN1aQGOrIBk5hF5R05KABL9wEJOwk1ZdjQjrHM2hoTHBqH07sfdKIFb6G1kO+DiZGXZ+BJ4e2IHPzfT8BvvmGLw68Olm+BE6OiJ4wFsCLzKBbP82NtHgPqEvhtV8tFAm5YxxDPr4lkfV2+ilaNyHJfwsmraVvEOAK8AvGL36eefilJ2AH5NXOLV7vbmcFJHpJ3iS7mon5BMJX0UJSaCzcKnZtmwm24aOA5AjPiUw3/VSIo2AbbnjGDoQ==

amz-sdk-invocation-id;amz-sdk-request;amz-sdk-retry;host;user-agent;x-amz-date;x-amz-security-token
fbcd61f597391a4e7e0a9eb1a917624d698d4fc3fd154d30e1b29a2242dbb9a1"
2023-06-23 13:30:30.874 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.auth.AWS4Signer.debug(33) - AWS4 String to Sign: '"AWS4-HMAC-SHA256
20230623T080030Z

2023-06-23 13:30:30.874 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.auth.AWS4Signer.debug(33) - AWS4 String to Sign: '"AWS4-HMAC-SHA256
20230623T080030Z
20230623/ap-south-1/sqs/aws4_request
3971c6f53f806d34ef5fef6e85e6306a3bb22ae0fcff46ffafd7b5830770b04e"


2023-06-23 13:31:20.924 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.internal.SdkSSLSocket.shutdownOutput(76) - shutting down output of sqs.ap-south-1.amazonaws.com/15.207.13.23:443
2023-06-23 13:31:20.924 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.internal.SdkSSLSocket.shutdownInput(69) - shutting down input of sqs.ap-south-1.amazonaws.com/15.207.13.23:443
2023-06-23 13:31:20.925 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.internal.SdkSSLSocket.close(62) - closing sqs.ap-south-1.amazonaws.com/15.207.13.23:443
**2023-06-23 13:31:20.925 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.http.AmazonHttpClient.handleRetryableException(1227) - Unable to execute HTTP request: Read timed out Request will be retried.** **After 50 secs it got timed out and then going for next retry**

**2023-06-23 13:31:20.925 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG com.amazonaws.request.executeOneRequest(1288) - Retrying Request: POST https://sqs.ap-south-1.amazonaws.com /444121746292/PROD_OA_COMMUNICATION_H**
2023-06-23 13:31:20.925 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.http.AmazonHttpClient.doPauseBeforeRetry(1915) - Retriable error detected, will retry in 100ms, attempt number: 0
2023-06-23 13:31:21.025 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.auth.AWS4Signer.debug(33) - AWS4 Canonical Request: '"POST
/444121746292/PROD_OA_COMMUNICATION_H

amz-sdk-invocation-id:e7a34898-7848-0029-5fd0-a284535470da
amz-sdk-request:ttl=20230623T080211Z;attempt=2;max=4
amz-sdk-retry:1/100/495
host:sqs.ap-south-1.amazonaws.com
user-agent:aws-sdk-java/1.12.490 Linux/5.10.165-143.735.amzn2.x86_64 OpenJDK_64-Bit_Server_VM/17.0.7+7-alpine-r1 java/17.0.7 vendor/Alpine cfg/retry-mode/legacy AmazonSQSBufferedAsyncClient/1.12.490
x-amz-date:20230623T080121Z
x-amz-security-token:IQoJb3JpZ2luX2VjEI///////////wEaCmFwLXNvdXRoLTEiRjBEAiAnaJ0NuFAaztjCool5DK7emjRy4WVEbHb+s8p5Mqp6kwIgdPjfy+HfGDHjt0PrFXLnLWZ3OgkPmDBSTrLh4bq6QfwqyAUI6P//////////ARAAGgw0NDQxMjE3NDYyOTIiDB8XnO0E0Stourxw9yqcBbvuHJYDeSxgjT0vPsl626mPotXpJkyxWc8O+ReAeCib+7lZDwVf5gdwSiv4cJz5f/2Opv+TMlhPe4vsggzx/kedGabPm3/D5ucObYWEIvIYnwFMRNnrKbdI673rs05yw5TlToUPn5oYuwOKyFYlXH51okvv+xXmq9werRS5x9ZX1ubbLjpQ1wT6pk8Dro6f6bxmBGocPqQkhFZl8kjzIGR3Tuwh27B3NC4vI+RAkJ75Lt8uMtamXz+Gq3RJmVvtw1F4heOU/iFYg+XRMuDsltQrLEyZP15QZkv/7tTDOzpgsDk9PPeQbng9EadjzLZXqbvsnUZw2arEAab7svqTWfh0YHDo8W5xVK+4mwvK16GXMv48Z1+KUTk9mDY6ZPSc3kHqCvg5NkybmYsb1AhRsiDGZ84ZU5f0Uf/Fa6U1ZGTEZGhrbdcSVAxHKX23QuAO8jHrKMFjm71hWar75uBjMxHUR57E5DTC7x8GUCRCP0zafHmyenrzB4wJA8hDlqZYog5+odxchNLQZtm7sait2T4BRrosr3WtsKv3/eDxsAGb/LxC5mRHbH5g4fw5X2Kk80/bXatBG5KWjhL7Hczrj8DTEV50+zpG848lZCBHz1k6Dwm6mZS8HNHu0UvdFbXqcsC3YAtdI7w8qswInIBBczjntqzc9TGi1t6lMmoFSuDRgYewq7sI7nRPzfPYs3yvjPz7hbZTYvEQx1uHPJem+Uu4d5oiFpMo16qfJMhrt2KIb9q0ZKHLnyok0amDZtvzlq7rQqG5HsP/WwSo2DqgCCUfFIa+6XgKhgTNIs4GnNjBabz07Wjlimp/8mnVaUOHhq7bs58GSL9nZymGAX9fKJunZFiZcs1M4YqGwB8r5IEVfWEHNZB/h5tRWQVhMICN1aQGOrIBk5hF5R05KABL9wEJOwk1ZdjQjrHM2hoTHBqH07sfdKIFb6G1kO+DiZGXZ+BJ4e2IHPzfT8BvvmGLw68Olm+BE6OiJ4wFsCLzKBbP82NtHgPqEvhtV8tFAm5YxxDPr4lkfV2+ilaNyHJfwsmraVvEOAK8AvGL36eefilJ2AH5NXOLV7vbmcFJHpJ3iS7mon5BMJX0UJSaCzcKnZtmwm24aOA5AjPiUw3/VSIo2AbbnjGDoQ==

amz-sdk-invocation-id;amz-sdk-request;amz-sdk-retry;host;user-agent;x-amz-date;x-amz-security-token
fbcd61f597391a4e7e0a9eb1a917624d698d4fc3fd154d30e1b29a2242dbb9a1"
2023-06-23 13:31:21.025 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.auth.AWS4Signer.debug(33) - AWS4 String to Sign: '"AWS4-HMAC-SHA256
20230623T080121Z
20230623/ap-south-1/sqs/aws4_request
903819bdcc9dc60794362b8465aa30176334ba9edc58026200fb4a65554ead62"
2023-06-23 13:31:21.033 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.r.ClockSkewAdjuster.getServerDate(179) - Reported server date (from 'Date' header): Fri, 23 Jun 2023 08:01:21 GMT
2023-06-23 13:31:21.033 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG com.amazonaws.request.handle(86) - Received successful response: 200, AWS Request ID: 7ceaac46-35c2-5967-acd0-f149665367ff
2023-06-23 13:31:21.033 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG com.amazonaws.requestId.logHeaderRequestId(138) - x-amzn-RequestId: 7ceaac46-35c2-5967-acd0-f149665367ff
2023-06-23 13:31:21.034 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.s.s.MessageMD5ChecksumHandler.calculateMessageBodyMd5(196) - Message body: {"id":null,"eventCode":"otp_verify","emailId":null,"mobileNumber":"8696089862","customerId":null,"modelAttributes":{"Location":"Android","Result":"success"},"userId":8696089862,"attachments":[],"tokens":null,"commMode":null,"delayInSeconds":0,"templateId":null,"commTransactionId":null,"documents":null,"ekitRequired":null,"processedDocUrls":{},"additionalAttributes":{},"missingAttributes":null,"byPassApp":false,"async":true,"cc":null,"bcc":null,"requestId":"49b19216-8b87-4cff-bff4-1fd644c9071d"}
2023-06-23 13:31:21.034 [] [] [SQSQueueBufferWorkerThread-16] [] [] [] [] DEBUG c.a.s.s.MessageMD5ChecksumHandler.calculateMessageBodyMd5(207) - Expected  MD5 of message body: 82cb93d74c3133cc3f0057aca36fb331

已尝试所有可能的解决方案来减少 50 秒的超时,但没有任何效果。

@Bean
public ClientConfiguration getClientConfig() {
        ClientConfiguration clientConfig = new ClientConfiguration();
        clientConfig = clientConfig.withSocketTimeout(7000);
        clientConfig = clientConfig.withRequestTimeout(9000);
        clientConfig = clientConfig.withConnectionTimeout(11000);
        clientConfig = clientConfig.withClientExecutionTimeout(13000);
        return clientConfig;
    }
@Bean
public SQSConnectionFactory sqsConnectionFactory() {
        String region = !StringUtils.isEmpty(sqsRegion) ? sqsRegion : AWSConfigConstants.AWS_SQS_REGION;
        //true -> refreshCredentialsAsync [credentials needs to be refreshed asynchronously]
        return new SQSConnectionFactory(new ProviderConfiguration(),AmazonSQSClientBuilder.standard()
                .withRegion(region)
                .withCredentials(InstanceProfileCredentialsProvider.createAsyncRefreshingProvider(true)));
    }
@Bean
public AmazonSQS amazonSqs() {
    String region = !StringUtils.isEmpty(sqsRegion) ? sqsRegion : AWSConfigConstants.AWS_SQS_REGION;
    return AmazonSQSClientBuilder.standard()
        .withRegion(region)
        .withClientConfiguration(getClientConfig())
        .withCredentials(InstanceProfileCredentialsProvider.createAsyncRefreshingProvider(true)).build();
}

如何传递 CLientConfiguration,以便快速发生超时并相应地重试。

httpclient aws-sdk amazon-sqs

评论

0赞 Thomas 11/15/2023
您的队列配置是什么?
0赞 Ashish Gupta 11/16/2023
@ThomasBoudreau 生产者是否依赖于队列配置?队列配置如下:- 最大邮件大小:- 256 KB 消息保留期:- 14 天 默认可见性超时:- 5 分钟 交货延迟:- 0 秒 接收消息等待时间:- 20 秒

答: 暂无答案