【めっせーじぶろーかー】
メッセージブローカー とは?
最終更新:
💡 サービス間の「伝言メモを預かる仲介者」
サービス間のメッセージを仲介するミドルウェア。キューなどへの保管や宛先への配分を通じて、送信側と受信側を直接つながずに連携させる。保存・再配送・重複の扱いは製品や設定による。
📌 このページのポイント
- 送信側と受信側の処理を分け、非同期の連携に使える
- 保存期間・ディスクへの保存・確認応答の条件を合わせて確認する
- 一時的な負荷を保管で受け止めるが、容量や処理能力には限界がある
- RabbitMQ・Apache Kafka・Amazon SQSなどは方式と保証が異なる
APIで直接サービスを呼べばいいのに、なんでメッセージブローカーが必要なの?
キューとトピックって何が違うの?
届いたかどうかは、どう確認するの?
同じメッセージが2回来たら、2回処理されちゃう?
急に注文が増えても、全部預かってくれる?
もっと詳しく知りたい人へ
同じ注文で二重決済されないようにするには?
再配送されても同じ注文を二重に更新しない設計が必要だよ。決済APIが冪等キーに対応しているなら、同じ操作の再試行には同じキーを使い、処理済み記録と更新の整合性も確認する。キーの有効期間・対象操作・パラメータ条件はAPI次第。Kafkaのトランザクションだけでは外部APIの副作用まで保証できないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「メッセージブローカー」って出てきたら「サービス間のメッセージを仲介する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Message Broker」 = メッセージの仲介者
💬 Brokerは仲介者。送る側と受け取る側の間に立ち、メッセージを扱う役割を表す名前だよ。