このトピックでは、メッセージ統合のデフォルトのリトライポリシーとデッドレターキューについて説明します。
リトライポリシー
リトライポリシーは、失敗したタスクをどのように再試行するかを定義します。メッセージ統合は、バックオフリトライと指数減衰リトライの 2 つのリトライポリシーをサポートしています。
バックオフリトライ (デフォルト) :失敗したタスクを最大 3 回リトライします。リトライ間隔は 10 秒から 20 秒の間のランダムな値です。
指数減衰リトライ:合計 1 日間で、失敗したタスクを最大 176 回リトライします。リトライ間隔は指数関数的に増加し、最大 512 秒になります。具体的なリトライ間隔は 1、2、4、8、...、512 秒です。
フォールトトレランスポリシー
フォールトトレランスポリシーは、エラーをどのように処理するかを定義します。次の 2 種類のフォールトトレランスポリシーをサポートしています:
フォールトトレランス許可 (推奨) :例外が発生しても、タスク実行をブロックしません。リトライ回数が上限を超えた場合、設定に基づいてメッセージはデッドレターキューに配信されるか、破棄されます。
フォールトトレランスの禁止: 例外が発生し、再試行回数が再試行ポリシーで設定された上限を超えると、タスクの実行がブロックされます。タスクのステータスは [準備完了] に変わります。
リソース設定エラーなどの回復不能なエラーが発生した場合、タスクのステータスは [起動失敗] に設定されます。
デッドレターキュー
デッドレターキューはタスクごとに設定します。メッセージを処理できない場合、またはリトライ回数が上限を超えた場合、元の Raw データがデッドレターキューに送信されます。この機能はデフォルトで無効になっています。
現在、デッドレターメッセージは ApsaraMQ for RocketMQ、Simple Message Queue (旧 MNS)、ApsaraMQ for Kafka、EventBridge に送信できます。