- java.lang.Object
-
- jdk.management.resource.SimpleMeter
-
- jdk.management.resource.NotifyingMeter
-
- jdk.management.resource.ThrottledMeter
-
- すべての実装されたインタフェース:
ResourceMeter
,ResourceRequest
public class ThrottledMeter extends NotifyingMeter
ThrottledMeterでは、帯域幅制限、オプションの親からのリクエストおよび割当てに対する承認者のコールバックを指定します。 レートはスロットル制限で制限し、いつでも設定できます。 1秒当たりのレートは、毎秒承認可能な量です。 毎秒使用されなかった量は、最大で1秒になるまで累積されます。- 導入されたバージョン:
- 8u40
-
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 static ThrottledMeter
create(ResourceType type, long ratePerSec, ResourceApprover approver)
スロットル・レートと承認者を持つ新しいメーターを作成します。static ThrottledMeter
create(ResourceType type, long ratePerSec, ResourceRequest parent, ResourceApprover approver)
スロットル・レート、親および承認者を持つ新しいメーターを作成します。static ThrottledMeter
create(ResourceType type, ResourceRequest parent, ResourceApprover approver)
無制限のレート、親および承認者を持つ新しいメーターを作成します。long
getCurrentRate()
現在の推定レート(量/秒)を返します。long
getRatePerSec()
現在のスロットル・レート(/秒)を返します。long
setRatePerSec(long ratePerSec)
スロットル・レート(/秒)を設定します。String
toString()
メーターの文字列表現を返します。long
validate(long previous, long amount, ResourceId id)
量を検証します。-
クラス jdk.management.resource.NotifyingMeterから継承されたメソッド
create、getApprover、getGranularity、setGranularity
-
クラス jdk.management.resource.SimpleMeterから継承されたメソッド
create, create, equals, getAllocated, getParent, getType, getValue, hashCode, request
-
-
-
-
メソッドの詳細
-
create
public static ThrottledMeter create(ResourceType type, long ratePerSec, ResourceApprover approver)
スロットル・レートと承認者を持つ新しいメーターを作成します。- パラメータ:
type
- ResourceTyperatePerSec
- 許可されたスロットル・レート(バイト/秒)。ゼロ(0)よりも大きい必要がありますapprover
- 通知対象のResourceApprover (null
も可)- 戻り値:
- 新しいThrottledMeter
- 例外:
IllegalArgumentException
- ratePerSecがゼロ(0)以下の場合
-
create
public static ThrottledMeter create(ResourceType type, ResourceRequest parent, ResourceApprover approver)
無制限のレート、親および承認者を持つ新しいメーターを作成します。- パラメータ:
type
- ResourceTypeparent
- リクエスト元のResourceRequest (null
も可)approver
- 通知対象のResourceApprover (null
も可)- 戻り値:
- 新しいThrottledMeter
- 例外:
IllegalArgumentException
- ratePerSecがゼロ(0)以下の場合
-
create
public static ThrottledMeter create(ResourceType type, long ratePerSec, ResourceRequest parent, ResourceApprover approver)
スロットル・レート、親および承認者を持つ新しいメーターを作成します。- パラメータ:
type
- ResourceTyperatePerSec
- 許可されたスロットル・レート(バイト/秒)。ゼロ(0)よりも大きい必要がありますparent
- リクエスト元のResourceRequest (null
も可)approver
- 通知対象のResourceApprover (null
も可)- 戻り値:
- 新しいThrottledMeter
- 例外:
IllegalArgumentException
- ratePerSecがゼロ(0)以下の場合
-
validate
public long validate(long previous, long amount, ResourceId id)
量を検証します。 量を返す場合は、そのまま返します。 スロットリングは、トークン・バケットのようなアルゴリズムによって実現します。割当て量
には、リクエストを満たすためにただちに処理される量を超える容量が保持されます。 最大割当て量は、現在の1秒当たりのレートで2秒分の量です。 リクエストによって要求された量分ずつ割当て量が減少します。 割当て量が最初から正の値である場合、リクエストはただちに処理されます。 割当て量が負の値の場合、割当て量は時間の経過に応じて補充されるので、正の値に戻るまで待機します。 複数のスレッドが割当て量をめぐって競合している場合、通常のスレッド・スケジュールと同期化プリミティブによって順序が左右されます。InterruptedExceptionが発生すると、ゼロ(0)が返されて、検証に失敗します。
リソース使用のスロットリングは、基礎となるリソース実装から分離されており、リソース使用率は変更ずに、リソース使用の開始のみを遅らせます。
- オーバーライド:
validate
、クラス:NotifyingMeter
- パラメータ:
amount
- リクエストされた量id
- リソース・インスタンスのResourceId(null
も可)previous
- 以前のメーター値- 戻り値:
- 承認された値
-
getCurrentRate
public final long getCurrentRate()
現在の推定レート(量/秒)を返します。- 戻り値:
- 現在の推定レート(量/秒)
-
getRatePerSec
public final long getRatePerSec()
現在のスロットル・レート(/秒)を返します。- 戻り値:
- 現在のスロットル・レート(/秒)
-
setRatePerSec
public final long setRatePerSec(long ratePerSec)
スロットル・レート(/秒)を設定します。- パラメータ:
ratePerSec
- レート/秒。ゼロ(0)よりも大きい必要があります- 戻り値:
- 以前のスロットル・レート(/秒)
- 例外:
IllegalArgumentException
- ratePerSecがゼロ(0)以下の場合
-
toString
public String toString()
次のクラスからコピーされた説明:SimpleMeter
メーターの文字列表現を返します。- オーバーライド:
toString
、クラス:SimpleMeter
- 戻り値:
- メーターの文字列表現
-
-