LoginSignup
0
0

More than 3 years have passed since last update.

SQSとmessage queingのメモ書き

Posted at

MessageQueueとは

端的にいうと異なるソフトウェアでデータの通信を行うため使う機構です。

一般的なRESTAPIの構造だと、requestをしたらresponseが返るまで処理が行えません。そのため非同期の処理を行うことはできません。
なので、ソフトウェア間の通信を一旦 MQに格納して、双方の任意のタイミングで送受信を行えるようにするのがMQの思想です。

image.png
(AWSサイトより引用)

SQS

Amazonが提供しているMessageQueueのサービスで二つのタイプからMQを構築することができます。

standard

性能を重要視した代わりに、順番の保証を捨てたMQです。

無限に近いスループットを持っていますが、
その代わりに、値を重複して返したり、順番もずれちゃう可能性があるため
冪等性を持った処理などに向いている種類です。

FIFO

一般的なデータ構造のキューに基づいたMQです。
FIFOに基づいているため、順番は保証されますが、速度に限界があります。

スループットは1秒間に3000程ですが、順番の保証と必ず1度しか値を返さないという保証があるため、処理の順番が大事な場合に向いてます。

MQが使えるケース

  • 画像の加工など非常に重い処理を並列で行いたい場合
    • 画像などを一旦MQに格納して同時にAWSのlambdaなどで加工を噛ませる。
    • 画像が必要になったタイミングでGETで取得してもらう。
  • バッチ処理を数で行いたい場合
    • 処理に必要なデータをMQに書き込んで行き、規定数に到達したらバッチを走らせるという構成。
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