MENU

【RabbitMQ】設定していないバインディングがある場合に確認すること

当ページのリンクには広告が含まれています。
目次

過去のバインディングの設定が残っている

原因

最新の状態では設定していなくても、過去にバインディングしていた場合にはその設定が残っています。

というのも、RabbitMQのバインディングは管理画面で手動削除しない限りは残ってしますからです。(違うよ、方法があるよという方はコメント頂けると助かります)

状況

私が実際に陥っていた状況です。

Exchange1 ⇒ Queue2 を一度設定してデプロイしてしまった後に、設定が誤っていたのでExchange2を追加して1と2で個別に設定したつもりでしたが、実際には「Exchange1 ⇒ Queue2」の設定は残ってしまっており、意図しないメッセージングが行われてしまっていました。

対処

一度作られたバインディングは手動で削除するしかないということで、管理画面から該当のバインディングを削除しました。

デフォルトエクスチェンジで設定されている

このデフォルトエクスチェンジには特定のルールが存在し、以下の特徴があります。

特に何も設定していないけどなぜかバインドされているという場合はデフォルトエクスチェンジによるものかを確認してみてください。

キュー名がルーティングキーとして使用される

デフォルトエクスチェンジにバインドされたキューは、自動的にそのキュー名がルーティングキーとして機能します。

キューは自動的にバインドされる

RabbitMQを設定した時点で、各キューがデフォルトエクスチェンジにバインドされており、キュー名を使って直接メッセージを送信できます。

用途

  • 単純なプロデューサー・コンシューマーモデルで使いやすい。
  • 特別なエクスチェンジを作成せずにキューにメッセージを直接送信したい場合に便利。

もし意図しない設定の挙動があった場合、このような点について確認してみてください。

最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

リーマンショックの影響で26歳の時にIT業界から離れ、紆余曲折を経て34歳でエンジニアに復帰しました。
復帰前は開発未経験でしたが、独学した知識と面接時のコミュニケーション力で見事開発エンジニアとして復帰しました!
今はフリーランスエンジニアとして仕事をしています。

■保有資格
・Java Gold SE 11

コメント

コメントする

CAPTCHA


目次