【らびっとえむきゅー】

RabbitMQ とは?

💡 メッセージを「確実に届ける」軽量キューイングシステム
📌 このページのポイント
RabbitMQ — メッセージブローカーの構造 Producer A Producer B Exchange 振り分け Queue 1 Queue 2 Consumer X Consumer Y 送信者 ルーティング 待ち行列 受信者 非同期処理 送受信を分離 信頼性 メッセージを確実に配信 スケーラブル Consumer追加で負荷分散 メッセージをキューで仲介し、送受信を非同期に
RabbitMQのメッセージブローカー構造
ひよこ ひよこ

Kafkaとどう使い分ける?

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

RabbitMQはメッセージの「確実な配信」に強い。複雑なルーティング(Exchange Type)で宛先を柔軟に振り分けられる。Kafkaは「大量データのストリーミング」に強い。RabbitMQは注文処理やタスクキュー(1回だけ確実に処理)、Kafkaはログ収集やイベントストリーミング(大量データの並列処理)が得意分野だよ

ひよこ ひよこ

Exchange って何?

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

ProducerはExchangeにメッセージを送り、ExchangeがルーティングルールでQueueに振り分ける。①Direct(ルーティングキー完全一致)、②Fanout(全Queueにブロードキャスト)、③Topic(ワイルドカードマッチ)、④Headers(ヘッダーベース)の4種類。この柔軟なルーティングがRabbitMQの大きな強みだよ

ひよこ ひよこ

メッセージは消えない?

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

設定次第。①メッセージの永続化(durable queue + persistent message)でディスクに書き込み、②Consumer からの確認応答(ack)でメッセージの処理完了を保証、③nackやrejectで処理失敗を通知してリキューまたはデッドレターキューに送れる。「最低1回配信」の保証が得られるよ

ひよこ ひよこ

性能のボトルネックは?

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

RabbitMQの弱点はスループット。Kafkaが毎秒数百万メッセージ捌ける一方、RabbitMQは数万〜数十万が目安。キューの長さが数百万を超えるとメモリ不足やパフォーマンス劣化が起きる。対策はLazy Queue(メッセージをディスクに格納)やQuorum Queue(高可用性)の活用。大量ストリーミングにはKafka、確実配信にはRabbitMQだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「RabbitMQ」って出てきたら「メッセージを確実に届けるオープンソースメッセージブローカー」と思えればだいたいOK!
📖 おまけ:英語の意味
「RabbitMQ」 = ウサギのメッセージキュー
💬 Rabbit(ウサギ)のように素早くメッセージを運ぶMQ(メッセージキュー)だよ
← 用語集にもどる