AWS 无服务器 SQS 扩展考虑因素
AWS SQS 的扩展考虑因素
SQS 队列缓冲 API Gateway 查询,允许异步处理。
作为 Lambda 事件源,AWS SQS 为您控制队列轮询。
但您仍然可以控制其他与性能相关的设置。
AWS SQS 扩展考虑因素视频
W3schools.com 与 Amazon Web Services 合作,为我们的学生提供数字培训内容。
工作原理
Lambda 自动使用五个并行进程来清除队列。
这五个同时进程表明 Lambda 正在调用您的 Lambda 函数五次。
为了防止您的 Lambda 函数被节流,请确保保留的并发至少为五。
如果 Lambda 服务检测到队列大小增加,它将提高批处理大小。
这意味着它将同时调用更多 Lambda 函数。
Lambda 将持续每分钟添加进程,直到队列减速或达到容量。
除非另有说明,否则最大并发数为 1000。
Lambda 故障
Lambda 服务将减少在 Lambda 函数故障时轮询队列的进程数量。
故障将被放置在死信队列中,并从您的 SQS 队列中删除。
如果您选择过大的批处理大小,您的 Lambda 函数可能会超时。
如果经常发生这种情况,Lambda 将减慢轮询速度,导致队列阻塞。
未处理的消息
如果可见性超时在 Lambda 函数处理消息之前过期,则未处理的消息将变得可见。
这些消息将需要再次处理,从而增加队列大小。
这增加了重复消息处理的可能性。
理想的方法是将可见性超时设置为函数超时的 6 倍。
将 "MaxReceive" 计数设置为平衡高并发至关重要。
这有助于在向死信队列发送过多消息时保持队列的正常运行。
下表显示了 SQS 队列作为 Lambda 事件源的特征。
参数 | 值/限制 | 参数设置方式 |
---|---|---|
批处理消息大小限制 | 1-10 | 使用 Lambda 函数上的事件源配置 |
默认轮询器数量 | 5 | 由 Lambda 服务管理 |
Lambda 增加并行轮询器的速率 | 每分钟最多 60 个 | 由 Lambda 服务管理 |
Lambda 处理的并发批次数量 | 最多 10000 个 | 由 Lambda 服务管理 |
并发 Lambda 函数数量 | 1000、函数或帐户限制中的较小者 | 保留的并发限制 |
每个队列的消息数量 | 无限制 | 不适用 |
可见性超时 | 0 秒到 12 小时 | 在队列上配置 |
重试次数 | 1-1000 | Maxreceive 计数 |
函数超时 | 0 秒到 15 分钟 | 在函数上配置 |
相关阅读
使用长轮询使用消息Amazon SQS 限制
Lambda 开发人员指南:使用 Lambda 与 Amazon SQS
如何使用 Amazon SQS 作为 Lambda 的事件源