添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在你创建和配置你的队列后,你可以使用Amazon SQS控制台向队列发送消息,并从队列中检索它们。

向队列发送消息。

在你创建你的队列后,你可以向它发送消息。
发送消息。
1.在https://console.aws.amazon.com/sqs/,打开Amazon SQS控制台。
2.在导航窗格中,选择队列。
3.在队列页面上,选择一个队列。
4.在行动中,选择发送和接收消息。
在这里插入图片描述
控制台显示发送和接收信息页面。
5.在消息正文中,输入消息文本。
6.对于先进先出(FIFO)队列,输入一个消息组ID。更多信息,请看FIFO发送逻辑。
7.(可选)对于先进先出队列,你可以输入一个重复数据删除的消息ID。如果你为队列启用了基于内容的重复数据删除,则不需要重复消息ID。更多信息,请参见FIFO交付逻辑。
8.(可选)对于标准队列,你可以为交付延迟输入一个值并选择单位。例如,输入60并选择秒。FIFO队列不支持单个消息的定时器。更多信息,请参阅Amazon SQS消息定时器。
9.选择发送消息。
当你的消息被发送时,控制台会显示一个成功的消息。选择查看细节以显示关于已发送消息的信息。
在这里插入图片描述

发送带有属性的信息。

对于标准队列和先进先出队列,您可以将结构化的元数据(如时间戳、地理空间数据、签名和标识符)与消息一起列入。
向队列发送带有属性的消息(控制台)。
1.在https://console.aws.amazon.com/sqs/,打开Amazon SQS控制台。
2.在导航窗格中,选择队列。
3.在队列页面上,选择一个队列。
4.在行动中,选择发送和接收消息。
5.输入消息属性参数。
a.在名称文本框中,输入一个独特的名称,最多256个字符。
b.对于属性类型,选择字符串、数字或二进制。
c.(可选)输入一个自定义数据类型。例如,你可以添加byte、int或float作为Number的自定义数据类型。
d.在值文本框中,输入消息属性值。
在这里插入图片描述
6.添加另一个信息属性,选择添加新属性。
在这里插入图片描述
7.你可以在发送邮件前的任何时候修改属性值。
8.要删除一个属性,选择删除。要删除第一个属性,请关闭消息属性。
9.当你完成向消息添加属性时,选择发送消息。你的消息就会被发送,控制台会显示一个成功信息。要查看发送的消息的属性信息,选择查看细节。选择 “完成”,关闭 "信息详情 "对话框。

接收和删除信息

在你向队列发送消息后,你可以接收和删除它们。当你从队列中请求消息时,你不能指定要检索哪些消息。相反,你指定你想检索的最大数量的信息(最多10条)。
Amazon SQS在为您检索到消息后不会自动删除,以防您没有成功接收到消息(例如,消费者失败或您失去连接)。要删除一个消息,你必须发送一个单独的请求,确认你已经成功地收到并处理了该消息。请注意,你必须在收到信息后才能删除它。
接收和删除信息
1.在https://console.aws.amazon.com/sqs/,打开Amazon SQS控制台。
2.在导航窗格中,选择队列。
3.在队列页面上,选择一个队列。
4.在行动中,选择发送和接收消息。
在这里插入图片描述
控制台显示发送和接收信息页面。
5.选择轮询消息。
Amazon SQS开始对队列中的消息进行轮询。在接收消息部分右侧的进度条显示了轮询的持续时间。
消息部分显示收到的消息的列表。对于每条消息,列表中显示消息ID、发送日期、大小和接收次数。
6.要删除信息,选择你想删除的信息,然后选择删除。
7.在 "删除信息 “对话框中,选择删除。

从Amazon SQS队列中清除消息

如果你不想删除一个Amazon SQS队列,但需要删除其中的所有消息,请清除该队列。消息的删除过程最多需要60秒。无论你的队列有多大,我们都建议等待60秒。
清洗一个队列
1.在https://console.aws.amazon.com/sqs/,打开Amazon SQS控制台。
2.在导航窗格中,选择队列。
3.在队列页面上,选择要清除的队列。
4.选择清除。
5.在 Purge queue 对话框中,通过输入 purge 并选择 Purge 来确认清除。
所有的消息都从队列中清除了。控制台显示一个确认横幅。

删除一个亚马逊SQS队列

如果你不再使用Amazon SQS队列,并且预计在不久的将来不会使用它,我们建议删除它。
你可以删除一个队列,即使它不是空的。要删除队列中的信息而不是队列本身,请清除队列。
删除一个队列
1.在https://console.aws.amazon.com/sqs/,打开Amazon SQS控制台。
2.在导航窗格中,选择队列。
3.在队列页面上,选择要删除的队列。
4.选择删除。
5.在删除队列的对话框中,通过输入delete来确认删除。
6.选择删除。

确认一个队列是空的

在大多数情况下,你可以使用长时间的轮询来确定一个队列是否为空。在极少数情况下,即使队列仍然包含消息,你也可能收到空响应,特别是当你在创建队列时为接收消息等待时间指定了一个低值。
确认一个队列是空的
1.停止所有生产者的信息发送。
2.在https://console.aws.amazon.com/sqs/,打开Amazon SQS控制台。
3.在导航窗格中,选择队列。
4.在队列页面上,选择一个队列。
5.选择 "监控 "选项卡。
6.在监控仪表板的右上方,选择刷新符号旁边的向下箭头。从下拉菜单中,选择自动刷新。把刷新间隔保持在1分钟。
7.观察以下仪表板。

·延迟的信息大约有多少
·不可见信息的大约数量
·可见信息的大致数量
当它们在几分钟内都显示为0时,说明队列是空的。

原文链接:
https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-sqs.html 一个Python包,用于并行侦听来自多个 AWS SQS 队列 的事件 multi_ sqs _listener ,您可以将 AWS SQS 事件处理程序快速添加到基于事件的软件(守护程序,服务…)。 程序包不处理代码的守护程序/服务部分,而是创建主事件等待循环。 此外,它还假设您的 AWS SQS 队列 已经存在,并且不会为您创建 队列 。 它与专用 队列 线程(每个侦听的 SQS 队列 一个)一起在主线程中构建事件循环。 主要功能包括: 支持长轮询和短轮询(请参阅 ) 在当前线程中创建一个事件循环 为每个 SQS 队列 创建一个专用的同步线程 处理优先事项 multi_ sqs _listener使用boto3进行所有 AWS 操作,因此您的 AWS 身份验证是boto3身份验证(角色,凭证等)。 经过Python 2.7和3.6测试。 pip install mul AWS SQS 处理器 处理来自 Amazon AWS SQS 队列 消息 基本上归结为一个循环,该循环接收准备处理的 消息 、处理 消息 并删除那些已处理的 消息 。 这个库提供了一个很好的 API 来完成这个循环。 只需使用npm安装库: npm install --save aws - sqs -processor 该模块导出可用于实例化处理器的函数。 这些函数接受一组配置选项,在处理器上调用start()后,它将使用message事件发出要处理的任何 消息 。 message事件的事件侦听器为每条 消息 传递两个参数。 第一个参数是包返回格式的 消息 。 第二个参数是一个函数,当处理完成时必须调用该函数来通知处理器。 访问密钥ID 亚马逊 AWS 访问密钥 ID 秘密访问密钥 亚马逊 AWS 秘密访问密钥 队列 所在区域 队列 网址 SQS 队列 的 URL maxNumber $ yarn global add @joblocal/ aws -move-queue-messages 使用npm: $ npm install -g @joblocal/ aws -move-queue-messages 在使用此软件包之前,您需要配置您的 AWS 环境变量。 最简单的方法是使用 。 安装软件包后,您可以按以下方式使用它。 $ aws -move-queue-messages 使用所有可选的CLI参数: $ aws -move-queue-messages < from> < to> -r [ AWS -REGION] -y 队列 的数目是任意的,创建 队列 时用户必须给其指定一个在 SQS 账户内唯一的名称 队列 在传递 消息 时会尽可能实现 “先进先出”,但无法保证先进入的 消息 一定会最先被投递给指定的接受者 不过 SQS 允许用户在 延迟 队列 ,顾名思义它是一种带有延迟功能的 消息 队列 。 那么,是在什么场景下我才需要这样的 队列 呢? 很多时候我们会有延时处理一个任务的需求,比如说: 2个小时后给用户发送短信。 15分钟后关闭网络连接。 2分钟后再次尝试回调。 下面我们来分别探讨一下几种实现方案: Java中的DelayQueue Java中的DelayQueue位于java.util.concurrent包 当消费者从 队列 中接收并处理一个 消息 时,该 消息 会留在 队列 中。Amazon SQS 不会自动删除该 消息 。因为Amazon SQS 是一个 分布式 系统,不能保证消费者真正收到 消息 (例如,由于连接问题,或由于消费者应用程序中的问题)。因此,消费者在接收和处理 消息 后必须从 队列 中删除该 消息 。 在收到一个 消息 后,它立即留在 队列 中。为了防止其他消费者再次处理该 消息 ,Amazon SQS 设置了一个可见性超时,即Amazon SQS 防止其他消费者接收和处理该 消息 的时间段。一个 消息 的默认可见性超时是30秒。最小是0秒。最大的是12小 消息 队列 的常见应用场景: 1,流量控制和业务剥离; 由于磁盘IO的速度与内存的速度差距太大,数据库通常都会成为系统的瓶颈。并且升级硬件成本较高,所以公司通常都会采取软件的方法来解 决这类问题。还是那句话,技术是为业务服务的,没有业务,就没有技术。抢购活动、秒杀活动这一类短时间内生成大批量订单的问题,我们 通常就采用 消息 队列 的方式来处理。 另外,从业务方面来考虑,有些用户不是很关心的业务,可以从主流程中剥离出来。比如订单系统,订单支付成功,我们一般都会发送短信通 知用户支付成功,或者返积分什么的。这个我 ②. AWS -SNS平台应用程序。需要在 AWS 管理 控制台注册,很简单,看说明就行了。 ③.FCM。Google的 消息 推送平台(需要XX上网工具,你懂的)。在平台注册应用,并且记录一个叫SenderI... 1、问:什么是可见性超时?       可见性超时是一个时段,在这个时段内,Amazon SQS 会阻止其他处理组件接收和处理某条 消息 。有关更多信息,请参阅 Amazon SQS 开发人员指南中的可见性超时。        这个特性,在工作当中,我们可以提高基于 sqs 消息 服务的并发能力。比如有1000个 sqs client在监听同一个 消息 队列 ,因为每个 消息 内容不一样,而且可见期间,只能被一个c... AWS Lambda 允许设置 Debugging and error handling, 在 Lambda 出现异常,达到最大的重试次数后,把以下信息放到选择的 SNS 或 SQS 主题作为死信 队列 (DLQ - Dead Letter Queue),包括 原始 Lambda 接收到的 消息 (基于 SNS 和 SQS 消息 的总大小,可能会被截取,本人猜测,尤其是 Kinesis 的 消息 会比较大)