是否可以查看订阅AWS SQS队列的内容?

时间:2016-06-22 21:22:19

标签: message-queue publish-subscribe amazon-sqs

我正在反向设计一些将消息发送到Amazon SQS队列的代码。我知道队列的名称,可以在我的AWS控制台中找到它。但是,我不知道订阅了什么队列。我想看看消息是如何处理的。有没有一种简单的方法可以找到它?我在控制台或CLI中看不到任何东西......我希望能找到类似于rabbitmqctl的东西,它可以显示订阅者列表。

1 个答案:

答案 0 :(得分:5)

您没有订阅SQS队列。 SQS队列具有侦听(通常是长轮询)队列以获取消息的侦听器。

任何拥有有效授权凭据的任何人都可以随时对其进行轮询(或不轮询)。

队列没有订阅者 - 主题,如在SNS中 - 有订阅者,每次发布消息时都会向所有订阅者广播消息。

有几个Cloudwatch metrics for SQS queues可用于确定是否正在轮询队列,但侦听器和队列之间的交互是与其他一些消息队列平台不同的模型,其中队列的侦听器维护持久连接(因此可能被枚举)。一个SQS监听器连接,接收任何可用的消息,直到最大允许或请求,断开¹,处理消息,然后重新连接以删除消息(否则消息最终变得可见,以便另一个监听器接收...或相同听众... SQS没有“谁”正在倾听的概念,因为一切都在HTTP上工作,当然,这是无国籍的。

¹当然,在HTTP保持活动状态下,侦听器可能在技术上不会断开与SQS API端点的TCP连接,但是当发生这种情况时没有状态保留,并且SQS无意识到侦听器“仍然连接”。