PUBLIC
CLOUDメッセージキュー6 MIN READ

TERM 027

Message Queue

処理の依頼をためて、送り手と受け手を分離する

Message Queueは、送り手が処理依頼をメッセージとしてキューへ置き、受け手が自分の速度で取り出す非同期通信の仕組みです。瞬間的な負荷差や一時障害を吸収します。

01ENQUEUE依頼を預ける
02BUFFER順番を待つ
03ACK処理して完了を通知
OVERVIEW

処理の依頼を一時的に蓄え、非同期に受け渡す仕組みの全体像。

CONTENTSこの記事の目次

01 — DEFINITION

Message Queueとは
何か

Message Queueは、送り手が処理依頼をメッセージとしてキューへ置き、受け手が自分の速度で取り出す非同期通信の仕組みです。瞬間的な負荷差や一時障害を吸収します。

02 — HOW IT WORKS

仕組みを
3段階で見る

細部へ入る前に、入力から結果までの役割を順番に捉えます。

INPUTPROCESSOUTPUT
01ENQUEUE

依頼を預ける

Producerが必要な情報をメッセージにして保存する。

02BUFFER

順番を待つ

Consumerが処理できるまで耐久的に保持する。

03ACK

処理して完了を通知

成功時に確認し、失敗時は再配信または隔離する。

PROCESS

Message Queueを理解するときの、最小の処理単位です。

03 — ESSENTIALS

押さえるべき
3つの要点

名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。

01PRODUCER

依頼を作る側

受け手の稼働状況を待たず、キューへ処理を渡します。

02CONSUMER

処理する側

自分の処理能力に合わせてメッセージを取得します。

03ACK

完了確認

成功を確認してからメッセージを削除します。

04 — REAL WORLD EXAMPLE

注文後のメール送信を分離する

注文APIがメール送信まで待つと、外部サービスの遅さが応答へ影響します。

SCENARIO / MESSAGE QUEUESTEP BY STEP
  1. 01

    注文確定と同時にメール依頼をキューへ置く

  2. 02

    APIは受付完了を先に返す

  3. 03

    Workerが依頼を取り出しメールを送る

RESULTメール側の一時障害を再試行でき、注文APIの応答時間も安定します。

05 — WATCH OUT

理解するときの
注意点

便利な仕組みほど、守備範囲と失敗の前提を明確にします。

01

重複処理を前提にする

ネットワークの瞬断などで同じメッセージが再配信されても問題が生じないよう、処理を冪等(べきとう)に実装します。

02

失敗を無限再試行しない

リトライ回数の上限とデッドレターキュー(DLQ)を設け、異常なメッセージを隔離して原因を調査できるようにします。

IN ONE SENTENCE

Message Queueとは?

処理の依頼を一時的に蓄え、非同期に受け渡す仕組み。

KEEP EXPLORING

CLOUDPub / Sub掲載中WEBWebhook掲載中CLOUDServerless掲載中