本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Simple Queue Service 消息队列
消息队列 是用于在 Amazon Simple Queue Service 中可靠地发送消息的逻辑容器。有两种类型的队列:标准 和先进先出 (FIFO)。要了解有关队列以及这些类型之间的差异的更多信息,请参阅《Amazon Simple Queue Service Developer Guide》。
本主题介绍如何使用Amazon SDK for Java 来创建、列出、删除和获取 Amazon Simple Queue Service 队列的 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);
请查看上面的完整示例
列出队列
要列出您账户的Amazon Simple Queue Service队列,请使用ListQueuesRequest
对象调用SqsClient’s
listQueues
方法。
当您使用不带任何参数的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); }
请查看上面的完整示例
获取队列的 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;
请查看上面的完整示例
删除队列
提供队列指向DeleteQueueRequest
对象的 URL。然后调用该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); } }
请查看上面的完整示例
更多信息
-
CreateQueue在 Amazon Simple Queue Service API 参考中
-
GetQueueUrl在 Amazon Simple Queue Service API 参考中
-
ListQueues在 Amazon Simple Queue Service API 参考中
-
DeleteQueue在 Amazon Simple Queue Service API 参考中