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