기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SQS를 통한 클라이언트 측 버퍼링 및 요청 일괄 처리 지원
AWS SDK for JavaAmazonSQSBufferedAsyncClient
를 포함합니다. 이 클라이언트는 클라이언트 측 버퍼링을 사용하여 요청 배치 처리를 간소화합니다. 즉 클라이언트에서 한 호출을 먼저 버퍼링한 후 배치 요청 형태로 Amazon SQS로 전송합니다.
클라이언트 측 버퍼링을 통해 최대 10개의 요청을 버퍼링하여 배치 요청으로 전송할 수 있으므로 Amazon SQS 사용 비용이 절감되고 전송되는 요청 수가 줄어듭니다. AmazonSQSBufferedAsyncClient
버퍼는 동기식 및 비동기식 호출을 모두 버퍼링합니다. 배치 처리된 요청과 긴 폴링 지원을 통해 처리량도 높일 수 있습니다. 자세한 정보는 Amazon SQS를 통한 수평 조정 및 작업 일괄 처리를 사용하여 처리량 증가을 참조하세요.
AmazonSQSBufferedAsyncClient
는 AmazonSQSAsyncClient
와 동일한 인터페이스를 구현하므로 AmazonSQSAsyncClient
에서 AmazonSQSBufferedAsyncClient
로 마이그레이션하려면 일반적으로 기존 코드를 최소한만 변경하면 됩니다.
참고
Amazon SQS의 버퍼링된 비동기식 클라이언트는 현재 FIFO 대기열을 지원하지 않습니다.
Amazon SQS 사용 BufferedAsyncClient
시작하기 전에 아마존 설정 SQS의 단계를 완료해야 합니다.
중요
는 AWS SDK for Java 2.x 현재 와 호환되지 않습니다. AmazonSQSBufferedAsyncClient
AmazonSQSAsyncClient
를 기반으로 새 AmazonSQSBufferedAsyncClient
를 만들 수 있습니다. 예를 들면 다음과 같습니다.
// Create the basic Amazon SQS async client final AmazonSQSAsync sqsAsync = new AmazonSQSAsyncClient(); // Create the buffered client final AmazonSQSAsync bufferedSqs = new AmazonSQSBufferedAsyncClient(sqsAsync);
새 AmazonSQSBufferedAsyncClient
를 생성한 후 이것을 이용해서 Amazon SQS에 다중 요청을 전송할 수 있습니다(AmazonSQSAsyncClient
와 마찬가지로). 예를 들면 다음과 같습니다.
final CreateQueueRequest createRequest = new CreateQueueRequest().withQueueName("MyQueue"); final CreateQueueResult res = bufferedSqs.createQueue(createRequest); final SendMessageRequest request = new SendMessageRequest(); final String body = "Your message text" + System.currentTimeMillis(); request.setMessageBody( body ); request.setQueueUrl(res.getQueueUrl()); final Future<SendMessageResult> sendResult = bufferedSqs.sendMessageAsync(request); final ReceiveMessageRequest receiveRq = new ReceiveMessageRequest() .withMaxNumberOfMessages(1) .withQueueUrl(queueUrl); final ReceiveMessageResult rx = bufferedSqs.receiveMessage(receiveRq);
AmazonSQS 구성 BufferedAsyncClient
AmazonSQSBufferedAsyncClient
는 대부분의 사용 사례에 적용되는 설정으로 사전 구성됩니다. AmazonSQSBufferedAsyncClient
를 추가로 구성할 수 있습니다. 예를 들면 다음과 같습니다.
-
필요한 구성 파라미터로
QueueBufferConfig
클래스의 인스턴스를 만듭니다. -
AmazonSQSBufferedAsyncClient
생성자에 인스턴스를 제공합니다.
// Create the basic Amazon SQS async client final AmazonSQSAsync sqsAsync = new AmazonSQSAsyncClient(); final QueueBufferConfig config = new QueueBufferConfig() .withMaxInflightReceiveBatches(5) .withMaxDoneReceiveBatches(15); // Create the buffered client final AmazonSQSAsync bufferedSqs = new AmazonSQSBufferedAsyncClient(sqsAsync, config);
QueueBufferConfig 구성 파라미터 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
파라미터 | 기본값 | 설명 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
longPoll |
true |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
longPollWaitTimeoutSeconds |
20s |
참고긴 폴링을 비활성화하면 이 설정은 영향을 주지 않습니다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxBatchOpenMs |
200ms |
발신 호출이 동일한 유형의 메시지를 배치 처리할 다른 호출을 대기하는 최대 시간(밀리초)입니다. 설정이 높을수록 동일한 작업량을 수행하는 데 필요한 배치 수가 감소합니다(그러나 배치의 첫 번째 호출을 대기하는 시간이 길어짐). 이 파라미터를 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxBatchSize |
배치당 요청 10개 |
단일 요청에서 배치 방식으로 함께 처리되는 최대 메시지 수입니다. 설정이 높을수록 동일한 요청 수를 수행하는 데 필요한 배치 수가 감소합니다. 참고배치당 요청 10개는 Amazon SQS에 허용되는 최대값입니다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxBatchSizeBytes |
256KiB |
클라이언트가 Amazon SQS에 전송하려고 시도하는 메시지 배치의 최대 크기(바이트 단위)입니다. 참고256KiB는 Amazon SQS에 허용되는 최대값입니다. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxDoneReceiveBatches |
배치 10개 |
설정이 높을수록 Amazon SQS에 호출을 전송하지 않고도 만족할 수 있는 수신 요청 개수가 늘어납니다(그러나 미리 가져오는 메시지가 많을수록 메시지가 버퍼에 있는 시간이 길어지므로 표시 제한 시간이 만료될 수 있음). 참고
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxInflightOutboundBatches |
배치 5개 |
동시에 처리될 수 있는 활성 아웃바운드 배치의 최대 개수입니다. 설정이 높을수록 아웃바운드 배치 전송 속도가 빨라지고(CPU 또는 대역폭과 같은 할당량도 영향을 줌), |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
maxInflightReceiveBatches |
배치 10개 |
동시에 처리될 수 있는 활성 수신 배치의 최대 개수입니다. 설정이 높을수록 수신 가능한 메시지가 많아지고(CPU 또는 대역폭과 같은 할당량도 영향을 줌), 참고
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
visibilityTimeoutSeconds |
-1 |
이 파라미터를 0이 아닌 양수 값으로 설정하면, 여기에 설정된 제한 시간 초과는 메시지가 사용되는 대기열에서 설정된 제한 시간 초과를 재정의합니다. 참고
제한 시간 초과를 |