負荷制御
Javaアプリケーションサーバーのトラフィックスロットリングオプションを設定するエージェントオプションを案内します。アプリケーションの最大同時リクエスト数を制限し、特定のユーザーまたはURLに基づいてサービスへのアクセスを制御する機能を含めます。ユーザー定義型メッセージの送信、URLリダイレクト設定、イベント通知の活性化など、様々なオプションを提供し、過負荷状況でのアプリケーションの安定性を保障できます。
Javaエージェントのスロットリングオプションは、Servletベースのアプリケーションにのみ適用されます。このオプションに対応するサーバーはTomcat、Weblogic、UndertowなどのServletであり、最新バージョンのSpringはそのオプションに対応していません。
-
throttle_enabled Boolean
既定値
false
アプリケーションの最大同時処理数を制限するスロットリング機能を活性化します。throttle_で始まるすべてのオプションは、
throttle_enabled=true
状態でのみ機能します。スロットリング制御に関するポリシーには、次の優先順位があります。
-
Block:URLとユーザーIPアドレスに基づいてサービスをブロックし、最優先します。
-
Passing:通過として適用されたURLは、Rejectリシーよりも優先されます。
-
Reject: Passingポリシーの後にRejectポリシーをブロックして適用します。
-
-
throttle_limit Int
既定値
10000
エージェントごとに同時処理できるリクエスト(トランザクション) の数が設定値を超えたらと、追加で流入するリクエストはRejectされます。
-
throttle_rejected_message String
既定値
too many request!!
スロットリングを制限する場合は、ユーザーに案内するメッセージを設定します。
-
throttle_rejected_forward String
ユーザーのリクエストがlimit値を超えてrejectされた場合、ユーザーに送信される案内ページのURLを設定します。
throttle_rejected_message
を同時設定した場合、throttle_rejected_forward
が優先されます。注意案内ページを同じコンテナでサービスする場合、これらも同時処理数としてカウントされ、再帰呼び出しによる障害につながる場合があります。そのため、案内ページはstatic htmlページにするか、外部におく必要があります。
-
reject_event_enabled Boolean
既定値
false
ユーザーリクエストがRejectされた場合、イベント通知を発生させるかどうかを設定します。
-
reject_event_interval MiliSecond
既定値
30000
Rejectのイベント通知が発生した後、設定した時間の間に重複したイベントの通知は発生しません。
-
throttle_blocking_url String
throttle_limit
を超えない場合でも、ブロッキング(処理拒否)するURLを設定します。システム障害の原因になり得るURLを強制的にブロックする場合に有効です。 -
throttle_blocking_ip ip_address
ユーザーのIPアドレスを基準にブロックする場合に設定します。DDoS攻撃や悪意のあるユーザーをIPアドレスベースでブロックするときに使用します。複数の場合はコンマ(,)で区切ります。
-
throttle_target_urls String
登録したURLを対象にスロットリング機能を適用します。複数の場合はコンマ(,)で区切ります。
-
throttle_passing_url String
throttle_limit
を超えた場合でも処理するURLを設定します。複数の場合はコンマ(,)で区切ります。 -
throttle_passing_url_prefix String
throttle_limit
を超えた場合でも処理するURLを設定します。複数の場合はコンマ(,)で区切ります。 -
throttle_blocked_message String
既定値
request blocked!!
リクエストをブロックしたユーザーに案内するメッセージを設定します。
-
throttle_blocked_forward String
リクエストをブロックしたユーザーに案内するURLを設定します。
throttle_blocked_message
を同時設定した場合、throttle_blocked_forward
を優先します。