Amazon SQS 메시지 전송, 수신 및 삭제 - AWS SDK for Java 1.x

곧 출시될 end-of-support AWS SDK for Java (v1) 버전을 발표했습니다. AWS SDK for Java V2로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

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

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의 전체 예제를 참조하십시오.

추가 정보