AWS SDK for Java 1.x는 2024년 7월 31일부터 유지 관리 모드로 전환되었으며 2025년 12월 end-of-support
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SQS 메시지 전송, 수신 및 삭제
이 주제에서는 Amazon SQS 메시지를 전송, 수신 및 삭제하는 방법을 설명합니다. 메시지는 항상 SQS 대기열을 사용하여 전달됩니다.
메시지 보내기
AmazonSQS 클라이언트의 sendMessage
메서드를 호출하여 Amazon SQS 대기열에 단일 메시지를 추가합니다. 대기열의 URL, 메시지 본문 및 선택적 지연 값(초 단위)이 포함된 SendMessageRequest 객체를 제공합니다.
가져오기
import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.SendMessageRequest;
코드
SendMessageRequest send_msg_request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody("hello world") .withDelaySeconds(5); sqs.sendMessage(send_msg_request);
GitHub의 전체 예제
한 번에 여러 메시지 전송
단일 요청으로 두 개 이상의 메시지를 전송할 수 있습니다. 여러 메시지를 보내려면 AmazonSQS 클라이언트의 sendMessageBatch
메서드를 사용하십시오. 이 메서드는 대기열 URL과 메시지 목록(각각 SendMessageBatchRequestEntry)이 포함된 SendMessageBatchRequest를 받아 전송합니다. 메시지마다 지연 값(선택 사항)을 설정할 수도 있습니다.
가져오기
import com.amazonaws.services.sqs.model.SendMessageBatchRequest; import com.amazonaws.services.sqs.model.SendMessageBatchRequestEntry;
코드
SendMessageBatchRequest send_batch_request = new SendMessageBatchRequest() .withQueueUrl(queueUrl) .withEntries( new SendMessageBatchRequestEntry( "msg_1", "Hello from message 1"), new SendMessageBatchRequestEntry( "msg_2", "Hello from message 2") .withDelaySeconds(10)); sqs.sendMessageBatch(send_batch_request);
GitHub의 전체 예제
메시지 수신
AmazonSQS 클라이언트의 receiveMessage
메서드를 호출하여 대기열의 URL을 이 메서드에 전달함으로써 현재 대기열에 있는 메시지를 모두 가져옵니다. 메시지는 Message 객체의 목록으로 반환됩니다.
가져오기
import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.SendMessageBatchRequest;
코드
List<Message> messages = sqs.receiveMessage(queueUrl).getMessages();
수신 후 메시지 삭제
메시지를 수신하고 메시지의 내용을 처리한 후에는 메시지의 수신 핸들과 대기열 URL을 AmazonSQS 클라이언트의 deleteMessage
메서드로 전송하여 대기열에서 메시지를 삭제합니다.
코드
for (Message m : messages) { sqs.deleteMessage(queueUrl, m.getReceiptHandle()); }
GitHub의 전체 예제
추가 정보
-
Amazon SQS 개발자 안내서의 Amazon SQS 큐 작동 방식
-
Amazon SQS API 참조에서 SendMessage
-
Amazon SQS API 참조에서 SendMessageBatch
-
Amazon SQS API 참조에서 ReceiveMessage
-
Amazon SQS API 참조에서 DeleteMessage