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에서 메시지를 안정적으로 전송하는 데 사용되는 논리적 컨테이너입니다. 표준선입선출(FIFO), 이렇게 두 가지 유형의 대기열이 있습니다. 대기열과 이러한 유형 간의 차이에 대해 자세히 알아보려면 Amazon SQS 개발자 안내서를 참조하세요.

이 주제에서는 AWS SDK for Java를 사용하여 Amazon SQS 대기열의 URL을 생성, 나열, 삭제 및 가져오는 방법을 설명합니다.

대기열 생성

AmazonSQS 클라이언트의 createQueue 메서드를 사용하여 대기열 파라미터를 설명하는 CreateQueueRequest 객체를 지정합니다.

가져오기

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException; import com.amazonaws.services.sqs.model.CreateQueueRequest;

코드

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); CreateQueueRequest create_request = new CreateQueueRequest(QUEUE_NAME) .addAttributesEntry("DelaySeconds", "60") .addAttributesEntry("MessageRetentionPeriod", "86400"); try { sqs.createQueue(create_request); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }

createQueue의 간소화된 형식을 사용할 수 있습니다. 이 형식에서는 표준 대기열을 생성하는 데 대기열 이름만 있으면 됩니다.

sqs.createQueue("MyQueue" + new Date().getTime());

GitHub의 전체 예제를 참조하십시오.

대기열 나열

계정에 대한 Amazon SQS 대기열을 나열하려면 AmazonSQS 클라이언트의 listQueues 메서드를 호출합니다.

가져오기

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesResult;

코드

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); ListQueuesResult lq_result = sqs.listQueues(); System.out.println("Your SQS Queue URLs:"); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }

파라미터 없이 listQueues 오버로드를 사용하면 모든 대기열이 반환됩니다. ListQueuesRequest 객체를 전달하여 반환된 결과를 필터링할 수 있습니다.

가져오기

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.ListQueuesRequest;

코드

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String name_prefix = "Queue"; lq_result = sqs.listQueues(new ListQueuesRequest(name_prefix)); System.out.println("Queue URLs with prefix: " + name_prefix); for (String url : lq_result.getQueueUrls()) { System.out.println(url); }

GitHub의 전체 예제를 참조하십시오.

대기열의 URL 가져오기

AmazonSQS 클라이언트의 getQueueUrl 메서드를 호출합니다.

가져오기

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

코드

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); String queue_url = sqs.getQueueUrl(QUEUE_NAME).getQueueUrl();

GitHub의 전체 예제를 참조하십시오.

대기열 삭제

대기열의 URL을 AmazonSQS 클라이언트의 deleteQueue 메서드에 제공합니다.

가져오기

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder;

코드

AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); sqs.deleteQueue(queue_url);

GitHub의 전체 예제를 참조하십시오.

추가 정보