【えーえむきゅーぴー】

AMQP とは?

💡 システム間の確実な伝言板、メッセージを絶対に落とさない
📌 このページのポイント
AMQP メッセージキューの流れ Producer 送信側 Publish Exchange 振り分け (direct/topic/fanout) Binding Queue A Queue B Queue C Consumer Consumer Consumer AMQPの特徴 メッセージ保証 ルーティング ACK応答
AMQPメッセージキューのイメージ
ひよこ ひよこ

AMQPって、メールみたいにメッセージを送るってこと?

ペンギン先生 ペンギン先生

イメージは近いけど、人じゃなくてシステム同士がやりとりするためのものだよ。注文システムが『注文が入ったよ』というメッセージを出すと、在庫システムや配送システムがそれぞれ受け取って処理する、みたいな使い方だね

ひよこ ひよこ

直接やりとりすればいいのに、なんでわざわざキューを挟むのかな?

ペンギン先生 ペンギン先生

直接だと相手が忙しいときにメッセージが失われるけど、キューに入れておけば相手が準備できたときに取り出せるんだ。郵便ポストみたいに、受取人が不在でも荷物を預かってくれる仕組みだよ

ひよこ ひよこ

MQTTとはどう違うの?

ペンギン先生 ペンギン先生

MQTTIoT向けで軽量さ重視、AMQPはエンタープライズ向けで信頼性重視だよ。AMQPはメッセージの永続化、トランザクション、複雑なルーティングなど、業務システムに必要な機能が充実しているんだ

ひよこ ひよこ

Exchangeとかキューとか、仕組みがちょっと複雑そうだね?

ペンギン先生 ペンギン先生

Exchangeは郵便局の仕分けセンター、Queueは届け先のポストと考えるといいよ。Exchangeがルールに従ってメッセージを適切なQueueに振り分けるんだ。ダイレクト、ファンアウト、トピックなど振り分け方も選べるよ

ひよこ ひよこ

RabbitMQ以外にもAMQPを使ってるものってあるの?

ペンギン先生 ペンギン先生

Apache Qpid、Azure Service BusなどもAMQPに対応しているよ。プロトコルが標準化されているから、異なるベンダーの製品同士でもメッセージをやりとりできるのが大きな強みだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「AMQP」って出てきたら「メッセージキューの標準プロトコル」と思えればだいたいOK!
📖 おまけ:英語の意味
「Advanced Message Queuing Protocol」 = 高度メッセージキューイングプロトコル
💬 金融業界で異なるシステム間のメッセージングを標準化するために生まれたプロトコルだよ
← 用語集にもどる