Rate Limiting and Throttling - SLA-Based Policies (レート制限および調整 - SLA ベースのポリシー)

レート制限 - SLA ベースのポリシーと調整 - SLA ベースのポリシーは、クライアント ID ベースのポリシーで、ID を参照として使用して、各アプリケーションが一定期間内に実行できる要求の数を制限します。これらのポリシーを使用するには、1 つ以上の SLA 層を作成して、チュートリアルで説明されているように要求制限を定義します。API ユーザーを引き付けるために、API Portal を使用してユーザーがアプリケーションを登録することを義務付けます。登録プロセスによって、ユーザーにクライアント ID とクライアントシークレットが付与されます。

API をコールするアプリケーションを登録するユーザーからの要求に手動の承認が必要になるように SLA 層を設定できます。

レート制限 - SLA ベースのポリシー

レート制限 (SLA ベース以外) では、特定の期間に API がすべてのアプリケーションから受け入れる要求の数を制限します。制限に達した後は、要求が拒否されます。ユーザーは、アプリケーションを登録したり、クライアント ID を送信したりする必要はありません。SLA ベースのレート制限では、アプリケーションによる API への要求の数を SLA 層の設定に基づいて制限します。デフォルトでは、クライアント ID とトークンのログイン情報は、client_id と client_secret というクエリパラメーターの形式で渡されることが想定されています。これを参照する Mule 式を変更し、これらの値を HTTP メッセージ内の別の場所から取得することもできます。

調整 - SLA ベースのポリシー

SLA ベースの調整は、SLA ベースのレート制限と同じように機能しますが、SLA 制限を超えた要求が拒否されず、後で再処理するためにキューに登録されるという点が異なります。これらの要求は、設定に従って定期的に再試行され、最終的には要求が受け入れられるか再試行の最大回数に達したために拒否されます。

要求が受け入れられていない間の試行間隔を設定でき、試行回数を制限できます。

SLA ベースのアプリケーション登録

API 用に SLA 層を少なくとも 1 つ作成すると、新しいアプリケーションからアクセスを要求するユーザーは、SLA 層を選択する必要があります。異なるレート制限や調整に基づいて複数の SLA 層の選択肢を提供できます。

API アクセス要求の管理

選択された SLA 層が自動に設定されている場合、API Manager は API アクセスのすべての要求をただちに承認し、ユーザーはすぐに API に認証済み要求を送信できます。選択された SLA 層が手動承認に設定されている場合、ユーザーが API に有効な要求の送信を開始できるようにするには、組織のシステム管理者が承認する必要があります。

API アクセス要求を承認するには、API バージョンページに移動し、[Applications (アプリケーション)] を選択します。

approve+applications

ここで、保留中の要求と処理済みの要求の詳細を確認し、管理できます。

SLA 層または階層 SLA の作成

まず、SLA 層を作成します。手動承認を選択すると、組織のシステム管理者がアプリケーションのアクセス要求を手動で承認する必要があります。

複数の SLA 制限は、次の条件の下でサポートされています。

  • API Manager で API を管理している。

  • Mule ゲートウェイランタイム 2.1 以降で API を管理している。

SLA 階層で、API ゲートウェイランタイム 2.1 より前のバージョンで実行される Mule に複数の制限が使用されている場合、最初に定義された制限のみが適用されます。

1 つの SLA 階層に複数のスループット制限を指定できます。

  1. [Add SLA Tier (SLA 層を追加)] ダイアログの [Limits (制限)] で、最初の制限セットを設定します。

  2. プラスアイコンをクリックし、次の制限セットを設定します。

    次に例を示します。

    # of Reqs (要求数) Time Period (期間) Time Unit (時間単位)

    100

    1

    Second (秒)

    10000

    1

    Day (日)

  3. [Add (追加)] をクリックします。

gold という名前の 1 つの SLA 階層で、1 秒あたり 100 件の要求の制限と 1 日あたり 10,000 件の要求の制限を提供できます。この場合、Gold 層に登録されたアプリケーションが 100 要求/秒のバースティング制限を超えることはありません。登録されたアプリケーションでアドバタイズされた 10,000 要求/日の SLA が取得されると同時に、トラフィックのボトルネックが回避されます。表示フラグをオフにすることによって、100 件の要求という最初の制限は、登録時にアプリケーション開発者に公開されません。1 つの制限のみを設定した場合は、その制限を表示する必要があります。

レスポンスヘッダー

要求応答には、ユーザーに SLA 制限について通知し、しきい値に近づいたときに通知するための 3 つのヘッダーが含まれています。SLA が、要求スループットを制限する複数のポリシーを適用する場合、最も制限の厳しいポリシーに関する 1 つのヘッダーセットによってこの情報が提供されます。

たとえば、API のユーザーが次のヘッダーが含まれる応答を受信するとします。

X-RateLimit-Limit: 20
X-RateLimit-Remaining: 14
X-RateLimit-Reset: 19100

次の 19100 ミリ秒間に SLA によって許可される要求は 14 件のみです。この SLA はこの期間に 20 件の要求を許可するように設定されています。

Mule クラスター内のレート制限と調整

クラスター内のレート制限と調整のガイドラインが、SLA ベースのポリシーのレート制限と調整に適用されます。