RabbitMQ Admin (v3) を使用して、エラー キューがバインドされているルーティング キー「MyErrorRoutingKey」を使用して、デッド レター メッセージをデフォルトの交換に送信するキューを作成しようとしました。そのため、管理インターフェイスで、「デッド レター交換」を空白のままにしました。
キューを作成しようとすると、次のメッセージが表示されるのが普通なのだろうか。
406 PRECONDITION_FAILED - vhost '/' のキュー 'MyQueue' の無効な引数 'x-dead-letter-routing-key': routing_key_but_no_dlx_defined
ドキュメントでさらに次のように述べられているため、デッドレターメッセージをデフォルトの交換にルーティングすることは可能と思われます。
配信不能キューのサイクルを形成することができます。たとえば、デッドレタールーティングキーを指定せずに、キューがデフォルトの交換にデッドレターメッセージを送信すると、これが発生する可能性があります。このようなサイクルのメッセージ (つまり、同じキューに 2 回到達するメッセージ) は破棄されます。
では、メッセージをデフォルトの交換にルーティングするにはどうすればよいでしょうか? 上記の「循環的な無用な配信不能メール」とは異なり、メッセージが失われないようにルーティング キーを指定できるようにしたいと考えています。