AWS SQS 与 SNS 消息
SQS 队列解耦和 SNS 发布/订阅扇出 — 至少一次投递,无限扩展。
为什么
SQS/SNS 解耦服务并吸收流量尖峰 — 100 万+ 消息/秒,按请求付费。SQS FIFO 保证顺序,SNS 扇出到多队列。免费:100 万请求/月。
何时使用
任务队列用 SQS、事件广播用 SNS、SNS→SQS 扇出并行处理。避免流(用 Kinesis)或需恰好一次(用 Lambda 幂等)。
如何做
示例
常见问题
- ⚠无 DLQ 毒消息 — 永久阻塞队列,始终配 DLQ
- ⚠FIFO 吞吐限制 — 无批处理 300 消息/秒,有则 3000
- ⚠SNS → SQS JSON 包装 — 消息包在 SNS 信封,解析 body.Message
最佳实践
- ✓始终设 DLQ — 防毒消息阻塞队列
- ✓Lambda 用 SQS 批处理(10 消息)— 调用减 10 倍,更低成本
- ✓消费者幂等 — SQS 至少一次,按消息 ID 去重
常见问题解答
什么是AWS SQS 与 SNS 消息?它解决什么问题?
SQS 队列解耦和 SNS 发布/订阅扇出 — 至少一次投递,无限扩展。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。
如何在 5 分钟内上手AWS SQS 与 SNS 消息?
两步即可跑通:① 创建队列 — aws sqs create-queue --queue-name my-queue;② 发送 — aws sqs send-message --queue-url URL --message-body '{"job":"x"}'。建议先用免费套餐验证流程,再接入生产环境。
AWS SQS 与 SNS 消息 最容易踩的坑是什么?
最高频的问题是:无 DLQ 毒消息 — 永久阻塞队列,始终配 DLQ。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。
AWS SQS 与 SNS 消息 的最佳实践有哪些?
AWS SQS 与 SNS 消息 的最佳实践包括:始终设 DLQ — 防毒消息阻塞队列;Lambda 用 SQS 批处理(10 消息)— 调用减 10 倍,更低成本;消费者幂等 — SQS 至少一次,按消息 ID 去重。其中首条「始终设 DLQ — 防毒消息阻塞队列」应作为团队默认规范写入 IaC 模板。
AWS SQS 与 SNS 消息 如何控制成本与避免账单意外?
三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。AWS SQS 与 SNS 消息 多数提供免费套餐,先在免费额度内验证再放量。