Amazon Simple Queue Service 메시지 대기열 사용
메시지 대기열은 Amazon Simple Queue Service에서 메시지를 안정적으로 전송하는 데 사용되는 논리적 컨테이너입니다. 표준과 선입선출(FIFO), 이렇게 두 가지 유형의 대기열이 있습니다. 대기열과 이러한 유형 간의 차이에 대해 자세히 알아보려면 Amazon Simple Queue Service 개발자 안내서를 참조하세요.
이 주제에서는 Amazon Simple Queue Service를 사용하여 AWS SDK for Java 대기열의 URL을 생성, 나열, 삭제 및 가져오는 방법을 설명합니다.
다음 예제에서 사용되는 sqsClient 변수는 다음 코드 조각에서 만들 수 있습니다.
SqsClient sqsClient = SqsClient.create();
정적 create() 메서드를 사용하여 SqsClient를 만들면 SDK가 기본 리전 공급자 체인을 사용하여 리전을 구성하고 기본 자격 증명 공급자 체인을 사용하여 자격 증명을 구성합니다.
대기열 생성
SqsClient’s createQueue 메서드를 사용하고 다음 코드 조각과 같이 대기열 파라미터를 설명하는 CreateQueueRequest 객체를 제공합니다.
가져옵니다.
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
코드
CreateQueueRequest createQueueRequest = CreateQueueRequest.builder() .queueName(queueName) .build(); sqsClient.createQueue(createQueueRequest);
GitHub의 전체 예제
대기열 나열
계정의 Amazon Simple Queue Service 대기열을 나열하려면 SqsClient’s listQueues 메서드를 ListQueuesRequest 객체와 함께 호출합니다.
파라미터를 사용하지 않는 listQueues
ListQueuesRequest 객체에 대기열 이름 접두사를 지정해 다음 코드와 같이 접두사와 일치하는 대기열만 결과로 표시되도록 제한할 수 있습니다.
가져옵니다.
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
코드
String prefix = "que"; try { ListQueuesRequest listQueuesRequest = ListQueuesRequest.builder().queueNamePrefix(prefix).build(); ListQueuesResponse listQueuesResponse = sqsClient.listQueues(listQueuesRequest); for (String url : listQueuesResponse.queueUrls()) { System.out.println(url); } } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); }
GitHub의 전체 예제
대기열의 URL 가져오기
다음 코드는 GetQueueUrlRequest 객체로 SqsClient’s getQueueUrl 메서드를 호출하여 대기열의 URL을 가져오는 방법을 보여줍니다.
가져옵니다.
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
코드
GetQueueUrlResponse getQueueUrlResponse = sqsClient.getQueueUrl(GetQueueUrlRequest.builder().queueName(queueName).build()); String queueUrl = getQueueUrlResponse.queueUrl(); return queueUrl;
GitHub의 전체 예제
대기열 삭제
대기열의 URL을 DeleteQueueRequest 객체에 제공합니다. 그런 다음, 다음 코드와 같이 SqsClient’s deleteQueue 메서드를 호출하여 대기열을 삭제합니다.
가져옵니다.
import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sqs.SqsClient; import software.amazon.awssdk.services.sqs.model.*; import java.util.List;
코드
public static void deleteSQSQueue(SqsClient sqsClient, String queueName) { try { GetQueueUrlRequest getQueueRequest = GetQueueUrlRequest.builder() .queueName(queueName) .build(); String queueUrl = sqsClient.getQueueUrl(getQueueRequest).queueUrl(); DeleteQueueRequest deleteQueueRequest = DeleteQueueRequest.builder() .queueUrl(queueUrl) .build(); sqsClient.deleteQueue(deleteQueueRequest); } catch (SqsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
GitHub의 전체 예제
추가 정보
-
Amazon Simple Queue Service API 참조의 CreateQueue
-
Amazon Simple Queue Service API 참조의 GetQueueUrl
-
Amazon Simple Queue Service API 참조의 ListQueues
-
Amazon Simple Queue Service API 참조의 DeleteQueue