MessageQueueとPub/Subの特徴メモ

Posted on

Pub/Subモデル(以下pubsub)はMessageQueueモデル(以下MQ)のスーパーセット的な位置付け。

MQが単なるメッセージをenqueue/dequeueするものと見た場合、pubsubはdequeue側にsubscriptionという層を1枚挟んだ形となる。 例えばGoogle cloud pub/subでは以下のような実装となっている。

pub/sub image

ここでtopicはMQで言うところのqueue種別を表すようなもの。 Publisherは指定のTopic上にメッセージを送信していく。メッセージはSubscriptionに対して転送され、SubscriverはSubscriptionからメッセージを受信する。

Subscriptionは複数のSubscriberから接続出来る。これによりMQでは通常コンシューマ1台あたりがメッセージを受信した時点で削除されるものが、複数のSubscriberに対して配布可能となる。

またGoogle cloud pub/subではメッセージの保存にGoogle Datastoreが利用され、永続化出来るようになっている。

pub/sub flow

参考リンク