"Aws-Sqs"
- AWS SQS → Google Pub/Sub:queue 模型搬到 topic + subscription 模型的跨雲遷移
SQS 是單一 region-scoped pull queue、Pub/Sub 是 global topic + first-class subscription 的 pub/sub 模型;這篇跨雲 migration playbook 走 6 維 diff dimension audit(components / data topology 軸 High)、對位 visibility timeout → ack deadline、maxReceiveCount → dead-letter topic、long polling → streaming pull、IAM policy → Service Account、SQS-to-many-consumer 要重設計成 topic fan-out;含 5 個 production 故障演練(fan-out 行為差 / ack deadline 太短重投 / ordering key vs FIFO / 跨雲網路成本 / DLT 設定差)跟 dual-publish 漸進 cutover
- AWS SQS:Visibility timeout、long polling 與 Lambda event source 的成本與失敗形狀
SQS deep article:visibility timeout 對齊 consumer 處理時間(ChangeMessageVisibility)、long vs short polling 的 cost 取捨(WaitTimeSeconds)、SQS + Lambda event source mapping(batch size / batch window / 並行 ramp-up)、DLQ + redrive policy(maxReceiveCount)、message size 與 extended client、per-request cost 模型;含 5 個 production 故障演練(VT < 處理時間 redelivery、polling 設定省成本、Lambda 部分失敗整批重投、DLQ maxReceiveCount、FIFO 吞吐上限)
- RabbitMQ → AWS SQS:交出 broker 維運、把 routing 收斂進 application
自管 RabbitMQ 叢集遷到 AWS SQS 是 operational redesign:protocol 不相容、application 要從 manual ack 改成 visibility timeout + delete、exchange routing 收斂成 SNS fan-out 或多 queue;本文跑 6 維 diff dimension audit(operational 差最大)、釐清什麼該遷什麼不該遷、5 個 production 故障演練(DLX → redrive policy / prefetch → batch + visibility / fan-out → SNS-to-SQS / 256KB 大小限制 / ordering 到 FIFO 的吞吐取捨)跟漸進 cutover
- 3.C48 Airbnb Dynein:SQS 分散式延遲任務排程
Airbnb 用 SQS at-least-once + DLQ 取代 Resque 單 Redis 限制、每 scheduler 1000 QPS、SQS wrap DynamoDB 處理 > 15 分鐘 delay。
- 3.C49 Airbnb Inspekt:Visibility timeout 當 retry budget
Airbnb Inspekt 隱私掃描器、scanner pull message、visibility timeout 自然觸發重現、用重現次數當 retry budget。
- 3.C50 Capital One:Visibility timeout 設計與 Lambda event source
Capital One tech blog 講 SQS + Lambda:visibility timeout 應略高於最大處理時間、Lambda 初 5 個 long polling、可擴 60/min。
- 3.C51 Atlassian JiRT:Kinesis + SQS subscription
Atlassian StreamHub Kinesis 底層、每 consumer 自己一個 SQS queue、JiRT 把輪詢 1 min 改成秒級 event-driven。
- 3.C52 Nielsen:Spark on EKS 雙 SQS 工作流
Nielsen 每日 25TB / 30B event、work queue + completion queue 雙 SQS、queue depth autoscale EKS pod。
- 3.C53 FINRA:S3 → SQS notification 大檔上傳
FINRA 金融監管、broker 上傳大檔、S3 → SQS notification → LFS、KMS + bucket policy + queue policy 三層稽核。
- 3.C54 Twitch EventSub:SNS+SQS fan-out 給第三方
Twitch Event Bus ~1660 events/sec 進 SNS、EventSub 用 SQS 接收 + Dispatcher fan-out 給訂閱者。
- 3.C55 SmugMug:SQS 驅動可重放搜尋管線
SmugMug 用 SQS 兩種模式:DynamoDB scan-segment 平行 backfill + production query 鏡像 replay 到 replica。
- 3.C56 PostNL EBE:完整 DLQ + retention + redrive 設計
PostNL 物流每天 1000 萬訊息、每 producer/consumer 隔離 stack、24h 內 100 次 retry、final DLQ 可 consumer redrive。
- 3.C57 Lob:自家 fork @lob/sqs-consumer 修 FIFO bug
Lob 原用 bbc/sqs-consumer 鎖 SDK v2、fork 出 @lob/sqs-consumer 支援 SDK v3 + TypeScript + 修 FIFO bug。
- 3.C58 Twilio:SQS 緩衝高流量 webhook
Twilio 教用 SQS 緩衝 SMS / status callback webhook、分 queue(SMS vs callback)、long polling 減 cost、FIFO 300 TPS 上限要分片。
- 3.C59 Rapid7:SQS 100 億 message/day 規模
Rapid7 公開引述:SQS 撐 10s of billions of messages per day、是架構關鍵元件、scale 量級的具體參考。