Amazon SQS - kin-kin/memo GitHub Wiki

AWS

Amazon SQS

  • データを複数の場所にレプリケートする
  • Producer=送信側、Consumer=受信側
  • 1メッセージあたりの最大サイズは256KB
  • 1APIリクエストあたりの最大メッセージ数は10件
  • デフォルトでは4日間メッセージが保持される
    • 60秒から14日間まで設定可能
    • 処理されないメッセージはデッドレターキューに入る
  • スタンダードキュー
    • 同じメッセージが複数回配信される場合がある
      • 可視性タイムアウトを使えば同じデータが取れないようになる
    • 送信順序と配信順序が異なる可能性がある
    • パフォーマンス面ではおすすめ
  • FIFOキュー
  • キューURL
  • メッセージID
  • 受信ハンドル
    • キューからメッセージを受信するたびに発行される
    • メッセージの削除や可視性の変更を要求する際に指定(= ロック)
  • ショートポーリング
    • デフォルトはショートポーリング
    • 分散サーバのサブセットがサンプリングされ、サンプリングされたサーバからのみメッセージが返される
  • ロングポーリング
    • 利用推奨
    • すべての分散サーバがサンプリングされる
    • キューの設定で待機時間を0より大きくすればロングポーリングになる
      • APIでは指定できない
  • 遅延キュー
    • 可視性タイムアウトとの違いは、メッセージが最初にキューに追加されたときに非表示になる
  • 可視性タイムアウト
    • メッセージが取得されてから一定時間、同じメッセージを他のシステムから取得できないようにブロックする(= 強制ロック解除時間)
  • デッドレターキュー
    • 処理できないメッセージを入れておくキュー
    • デフォルトはOFF、回数を指定

References