繁体   English   中英

如果是AmazonSQS,请使用SQS queueName而不是URL

[英]Use SQS queueName instead of URL in case of AmazonSQS

我有以下代码来接收来自SQS的消息:

        ReceiveMessageRequest receiveMessageRequest = new
                ReceiveMessageRequest();
        receiveMessageRequest.setQueueUrl(queueUrl);
        receiveMessageRequest.setMaxNumberOfMessages(sqsBatchSize);

            ReceiveMessageResult messageResult = sqsClient.receiveMessage(receiveMessageRequest);

有什么方法可以传递queueName而不是在ReceiveMessageRequest对象中传递queueURL吗?

奇怪的是,没有。

好吧,这实际上并不奇怪。 队列名称仅在每个AWS账户内的区域级别是唯一的(在一个账户或多个账户中不是全局唯一的),并且另一个账户可能会授予您访问其队列的权限,因此队列名称本身不足以提供信息以确定要访问的队列。 还需要帐号和地区。 (在SQS成立之初,该区域最初不是考虑因素,因为只有一个区域。)

大概是由于这个原因,SQS查询API(SDK使用的Web服务) 要求在请求中包含队列URL 这是一个唯一标识队列的值,因为帐户,区域和队列名称都嵌入其中。

ARN可能已经识别出队列,这也很有意义,但是有可能早在十年前SQS首次发布时就尚未发明ARN。 SQS是有史以来的第一个AWS服务, 有关此内容的此博客文章始于2006年,其中包含一个屏幕快照,该屏幕快照是无价的经典老式Amazon。 屏幕顶部的活动标签很难阅读,但似乎显示“赚钱”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM