このトピックでは、メッセージ統合モジュールでサポートされている再試行ポリシーとデットレターキューについて説明します。
再試行ポリシー
再試行ポリシーは、送信に失敗したメッセージを再試行するために使用されるメソッドを指定します。 Message Integrationは、バックオフ再試行および指数関数的減衰再試行ポリシーをサポートします。
バックオフの再試行: 失敗したメッセージは最大3回再試行できます。 2つの連続する再試行の間隔は、10〜20秒の範囲のランダムな値である。 これはデフォルトの再試行ポリシーです。
指数減衰の再試行: 失敗したメッセージは最大176回再試行できます。 2つの連続したリトライの間隔は、最大512秒まで指数関数的に増加します。 再試行に使用できる合計時間は1日です。 具体的な間隔は、1秒、2秒、4秒、8秒、16秒、32秒、64秒、128秒、256秒、512秒である。 値512秒は、167の再試行に使用されます。
フォールトトレランスポリシー
フォールトトレランスポリシーは、エラーを処理するために使用されるメソッドを指定します。 Message Integrationは、次のフォールトトレランスポリシーをサポートしています。
フォールトトレランス許可: フォールトトレランスを許可します。 エラーが発生した場合、メッセージ処理はブロックされません。 指定された最大リトライ回数に達した後にメッセージの送信に失敗した場合、メッセージはデットレターキューに配信されるか、破棄されます。
フォールトトレランス禁止: フォールトトレランスを許可しません。 メッセージでエラーが発生し、指定された最大リトライ回数に達した後にメッセージの送信が失敗した場合、メッセージ処理はブロックされます。 この場合、タスクのステータスは自動的に準備完了に変更されます。
無効なリソース設定などのエラーにより再試行が実行できない場合、タスクのステータスは自動的にスタートアップ失敗に変更されます。
デッドレターのキュー
デッドレターキューはタスクで有効になります。 再試行ポリシーで指定された再試行の最大数に達した後にメッセージの処理または送信が失敗した場合、生データはデットレターキューに送信されます。 デフォルトでは、デットレターキュー機能は無効になっています。
ApsaraMQ for RocketMQおよびMessage Service (MNS) 内のキューのみが無効キューとして使用できます。