私の RabbitMQ コンシューマでは、次の 2 種類のエラーを区別しています。
- 「プロデューサー エラー」: プロデューサーは実装契約を尊重していません。例: 必須データの欠落、ビジネス ルールに違反するデータの組み合わせ、予期しないコンテンツ タイプ
- 「消費者エラー」: メッセージは完全に有効ですが、消費者はメッセージの処理に失敗します。例: コンシューマ コードのバグ、メモリの枯渇、データベースへの接続の失敗。
プロデューサーのエラーをプロデューサーに戻す必要があります。コンシューマー側のエージェント (コンシューマー自体、人間など) が失敗したメッセージを再処理するか、手動で検査するキューにコンシューマー エラーをルーティングする必要があります。プロデューサーは問題を認識しません。
Q1: 生産者のエラーと消費者のエラーの違いは関係ありますか?
Q2: キューの DLX の構成で、DLX はどちらのメッセージを受け取る必要がありますか?プロデューサー エラーまたはコンシューマー エラー? DLQ が期限切れメッセージとルーティング不能メッセージも受信することは承知しています。
アドバイスをいただきありがとうございます。