デッドレターキューの紹介
簡潔RabbitMQのメッセージング・ミドルウェアと10個の不能キューの17の高度なバージョン:この記事は、第十七の「RabbitMQの簡潔シリーズ」です
デッドレターキュー:DLX(デッドレター交換)
メッセージは消費者でない場合は、キューが不能キューになりました。
RabbitMQの交換に関して不能キューで。RabbitMQのデッドレターキュー:
DLXの使用、メッセージが配信不能キュー(デッドメッセージ)になったとき、それは別の交換に再公開することができ、交換が不能キューDLXです。
RabbitMQのでは、どのようにメッセージの配信不能になるには?以下の状況:
1:メッセージは拒否され
拒否されたメッセージはに分かれています:basic.rejectと2種類のbasic.nack
場合はいずれの場合も、偽requeeu =が設けられています。falseにキューに戻るように設定されています
2:TTLは、メッセージを期限切れ
前回の記事では、我々はTTLメッセージの適時性について話しました。メッセージはタイムアウトケースを超える場合
3:キューの最大長
同様に、前回の記事では、我々はメッセージを送信するとき、メッセージが設定されている最大の話しました。メッセージ送信のデータ長が設定値を超えた場合、この状況は不能キューとなっています。
デッドレターキューRabbitMQのを見てみましょう:
DLXは通常の交換、交換であると一般的には、それが実際には、それが唯一のプロパティのキューを設定することで、任意のキューに指定することができ、違いはありません。
これはデッドレターキュー時間を持っている場合、これは自動的に設定するには、メッセージ交換を再発行のRabbitMQなり、その後、別のキューにルーティングすること。
適切な治療を行うには、キュー内のメッセージを聞くことができ、この機能はrabbitmq3.0以前の機能がすぐにパラメータをサポートして作ることができます。
デッドレターキューの設定:
1 :不能キューとキュー交換、その後、結合し(これはナンセンスである、これは任意のキューです):
取引所:dlx.exchange
キュー:dlx.queue
Routingkey:#
2 :その後、我々は、通常のスイッチ、キュー、バインドを宣言し、私たちは、キューにパラメータを追加する必要があります。このパラメータは次のとおりです。引数.put(「X -デッド・レター・交流」、「DLXの.exchange」)。
説明:arguments.put(「X-DAD-手紙交換」は、「受信交換は彼らのデッドレターキュー定義です」)
したがって、キューに再登録するには有効期限のメッセージ、キューの最大長は、メッセージが配信不能キューに直接ルーティングすることができます!
ここでのコードはgitのに掲載されたスクリーンショットではありません。
この章では、まとめています。