高速日記

ソフトウェアの高速化・チューニングの話について好き勝手にまとめていくブログです

AMQPとは何なのか

Rabbit MQを理解するためにAMQPとは何か、から調べてみた

まずAMQPはAdvanced Message Queuing Protocolの略語で、アプリケーション層のバイナリプロトコルらしい

色々なメッセージングアプリケーションやコミュニケーションパターンを効果的にサポートするために設計されたらしい(とWikipediaに書いてある)

image

RabbitMQ以外にもいろんなQueueが対応している

AMQP仕様のバージョンについて

最新は1.0(Final)だが、AMQPで使われているのは0-9-1らしい。

ここにも書いてあるとおり0.9-1から1.0になる際にmessage brokerの部分がごそっと消えていて、Exchangesが消えたりProducerやConsumerじゃなくてtargetsとsourcesになっていたり大きな変更をされている。変わりすぎていて困る……が、RabbitMQが準拠しているのは0-9-1の方のようなので0-9-1の方を調べてみよう

GREEさんのサイトの説明がわかりやすいので引用するが要するにBindingにあるルールを元にExchangeがメッセージを特定のMessageQueueに割り振るということらしい image

他にもメソッド(操作)の定義やメッセージ本体の仕様の定義、メッセージフローの仕様などあるが、それらはまた次回に

参考文献