RabbitMQのメッセージングミドルウェアの簡潔な技術と10個の不能キューの17の高度なバージョン

デッドレターキューの紹介

簡潔RabbitMQのメッセージング・ミドルウェアと10個の不能キューの17の高度なバージョン:この記事は、第十七の「RabbitMQの簡潔シリーズ」です

デッドレターキュー:DLX(デッドレター交換)

    メッセージは消費者でない場合は、キューが不能キューになりました。

RabbitMQの交換に関して不能キューで。RabbitMQのデッドレターキュー:

DLXの使用、メッセージが配信不能キュー(デッドメッセージ)になったとき、それは別の交換に再公開することができ、交換が不能キューDLXです。

RabbitMQのでは、どのようにメッセージの配信不能になるには?以下の状況:

1:メッセージは拒否され

    拒否されたメッセージはに分かれています:basic.rejectと2種類のbasic.nack

場合はいずれの場合も、偽requeeu =が設けられています。falseにキューに戻るように設定されています

2:TTLは、メッセージを期限切れ

    前回の記事では、我々はTTLメッセージの適時性について話しました。メッセージはタイムアウトケースを超える場合

3:キューの最大長

    同様に、前回の記事では、我々はメッセージを送信するとき、メッセージが設定されている最大の話しました。メッセージ送信のデータ長が設定値を超えた場合、この状況は不能キューとなっています。

image1.png

デッドレターキューRabbitMQのを見てみましょう:

DLXは通常の交換、交換であると一般的には、それが実際には、それが唯一のプロパティのキューを設定することで、任意のキューに指定することができ、違いはありません。

これはデッドレターキュー時間を持っている場合、これは自動的に設定するには、メッセージ交換を再発行のRabbitMQなり、その後、別のキューにルーティングすること。

適切な治療を行うには、キュー内のメッセージを聞くことができ、この機能はrabbitmq3.0以前の機能がすぐにパラメータをサポートして作ることができます。

image2.png

デッドレターキューの設定:

:不能キューとキュー交換その後、結合し(これはナンセンスである、これは任意のキューです

取引所:dlx.exchange

キュー:dlx.queue

Routingkey:#

:その後、我々は、通常のスイッチ、キュー、バインドを宣言し、私たちは、キューにパラメータを追加する必要があります。このパラメータは次のとおりです。引数.put(「X -デッド・レター・交流」、「DLXの.exchange」)。

説明:arguments.put(「X-DAD-手紙交換」は、「受信交換は彼らのデッドレターキュー定義です」)

したがって、キューに再登録するには有効期限のメッセージ、キューの最大長は、メッセージが配信不能キューに直接ルーティングすることができます!

ここでのコードはgitのに掲載されたスクリーンショットではありません。

この章では、まとめています。

image3.png




おすすめ

転載: blog.51cto.com/kaigejava/2426330