Amazon Simple Queue Service 메시지를 전송, 수신 및 삭제 - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Simple Queue Service 메시지를 전송, 수신 및 삭제

메시지는 분산된 구성 요소가 송신 및 수신할 수 있는 데이터 조각입니다. 메시지는 항상 SQS 대기열을 사용하여 전달됩니다.

다음 예제에서 사용되는 sqsClient 변수는 다음 코드 조각에서 만들 수 있습니다.

SqsClient sqsClient = SqsClient.create();

정적 create() 메서드를 사용하여 생성하는 경우 SDK는 기본 지역 공급자 체인을 사용하여 지역을 구성하고 기본 자격 증명 공급자 체인을 사용하여 자격 증명을 구성합니다. SqsClient

메시지 전송

클라이언트 메서드를 호출하여 Amazon Simple Queue Service 대기열에 메시지 하나를 추가합니다. SqsClient sendMessage 큐의 URL, 메시지 본문, 선택적 지연 값 (초) 이 포함된 SendMessageRequest객체를 제공하십시오.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

코드

sqsClient.sendMessage(SendMessageRequest.builder() .queueUrl(queueUrl) .messageBody("Hello world!") .delaySeconds(10) .build()); sqsClient.sendMessage(sendMsgRequest);

한 번의 요청에 여러 메시지를 전송

SqsClient sendMessageBatch 메서드를 사용하여 단일 요청에서 메시지를 2개 이상 전송합니다. 이 메서드는 대기열 URL과 전송할 메시지 목록이 SendMessageBatchRequest포함된 a를 사용합니다. (각 메시지는 a입니다 SendMessageBatchRequestEntry.) 또 메시지의 지연 값을 설정해 특정 메시지 전송을 지연시킬 수 있습니다.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

코드

SendMessageBatchRequest sendMessageBatchRequest = SendMessageBatchRequest.builder() .queueUrl(queueUrl) .entries(SendMessageBatchRequestEntry.builder().id("id1").messageBody("Hello from msg 1").build(), SendMessageBatchRequestEntry.builder().id("id2").messageBody("msg 2").delaySeconds(10).build()) .build(); sqsClient.sendMessageBatch(sendMessageBatchRequest);

에서 전체 샘플을 확인하세요 GitHub.

메시지 검색

SqsClient receiveMessage 메서드를 호출하여 현재 대기열에 있는 메시지를 검색합니다. 이 메서드는 대기열 URL이 ReceiveMessageRequest포함된 a를 사용합니다. 또 반환할 메시지의 최대 수를 지정할 수 있습니다. 메시지는 Message 객체의 목록으로 반환됩니다.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

코드

try { ReceiveMessageRequest receiveMessageRequest = ReceiveMessageRequest.builder() .queueUrl(queueUrl) .maxNumberOfMessages(5) .build(); List<Message> messages = sqsClient.receiveMessage(receiveMessageRequest).messages(); return messages; } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } return null;

전체 샘플은 을 참조하십시오 GitHub.

수신 후 메시지 삭제

메시지를 수신하고 내용을 처리한 후 메시지의 수신 핸들과 큐 URL을 SqsClient's deleteMessage메서드에 전송하여 큐에서 메시지를 삭제합니다.

가져오기

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;

코드

try { for (Message message : messages) { DeleteMessageRequest deleteMessageRequest = DeleteMessageRequest.builder() .queueUrl(queueUrl) .receiptHandle(message.receiptHandle()) .build(); sqsClient.deleteMessage(deleteMessageRequest); }

전체 샘플은 을 참조하십시오 GitHub.

추가 정보