0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【学習メモ】AWS SQS Loose Coupling

Last updated at Posted at 2021-03-14

Loose Coupling

疎結合の意味。密結合の反対。
システム上で、各要素が独立し、互いの関連性が弱い。
疎結合の設計によって、一部のシステム要素は故障が起きても、影響が他の要素に及びにくいというメリットがある。また、一つの要素を修正しても、他の要素への影響を考えなくても良いメリットもある。

SQSとは

SQS(Simple Queue Service)
二つのプログラムが通信する際にポーリング処理を実施するサービス。

本来ならば、直接通信だと、受信側の処理がいっぱい溜まってて、送信側のキューがうまく届かないかもしれない。
SQSは中継所みたいな役割を果たして、送信側が送ってきたキューを溜め込んで、受信側が通信内容を問合せして、SQSの中にキューがあれば送信。

・SQSの中身は Request QueueとResponse Queueがある。
SQS.png

特徴

・フルマネージド型
・高可用性:複数のサーバー/データセンターにメッセージを保持する。
・高スケーラビリティ:多数の送信者と受信者に対応可能。
・高スループット:メッセージが増加しても高スループットを維持できる。
・低コスト:無料枠あり、従量課金。

◯メッセージサイズ:最大256KB
※Extended Client Libraryを利用すると、2GBまでのメッセージの送受信が可能。

◯保持期限:
デフォルト:4日間保持
※60秒から14日の間で変更可能。

※30日以上、キューに以下のリクエストがない場合、SQSはそのキューを削除する可能性がある。
SendMessage、ReceiveMessage、DeleteMessage、GetQueueAttributes、SetQueueAttributes。

処理形式

二つの処理形式がある。
◯標準キュー
◯FIFO(First in First out)

標準キュー

なるべく順番通りに処理するが、順番が前後する場合もある。
少なくとも 1 回のメッセージ配信をサポートする。

FIFO

順番通りに処理。最初に入ったキューを優先的に処理。

SQSの追加機能

Short Poling

キューが空の場合でも即時にリターンする。

Long Poling

キューが空の場合はタイムアウトまで待つ。

※Long polingとShort PolingはReceive Message Wait Timeで設定する。
0=Short Poling。最大は20まで。

Visibility Timeout

®️ref:https://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html

コンシューマーがキューからメッセージを受信して処理しても、そのメッセージはキューに残ったままです。
Amazon SQS では、メッセージが自動的に削除されません。
Amazon SQS は分散システムであり、接続の問題やコンシューマーアプリケーションの問題などが原因で、
コンシューマーが実際にメッセージを受信するという保証がないためです。
そのため、コンシューマーはメッセージを受信して処理した後、キューからメッセージを削除する必要があります。

メッセージが受信された直後は、メッセージはキューに残ったままです。
他のコンシューマーが同じメッセージを再処理しないように、Amazon SQS は可視性タイムアウトを設定しています。
Amazon SQS では、この時間内に他のコンシューマーが同じメッセージを受信したり処理したりすることはできません。
メッセージのデフォルトの可視性タイムアウトは 30 秒です。
最小値は 0 秒、最大スケールは 12 時間です。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?