【えーえむきゅーぴー】

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」 = 高度メッセージキューイングプロトコル
💬 金融業界で異なるシステム間のメッセージングを標準化するために生まれたプロトコルだよ
← 用語集にもどる