コンテンツにスキップ

について

待機室は、トラフィックが以前に定義された閾値に近づくと、訪問者をキューに入れ、アプリケーションがダウンするのを防ぎます。

待機室のプロセスフロー。リクエストがCloudflareによって管理され、オリジナルのウェブサイトに到達する前に待機室に配置される様子を示しています。

ユーザーフロー

特定のアプリケーションページのために待機室を作成してアクティブ化した後

  • ページが重いトラフィックを経験していない場合、訪問者はページに直接アクセスします。

  • ページのトラフィックがユーザー定義の閾値に近づくと、訪問者はページにアクセスする順番が来るまで仮想待機室に入ります:

    • 各ユーザーは、待機室からオリジナルのウェブサイトへのリクエストの動的な流出を先入れ先出し (FIFO)の順序で管理するためのクッキーを受け取ります。
    • 待機室にいる間、ユーザーのブラウザは20秒ごとに自動的に更新され、推定待機時間に関する最新情報を提供します。
    • ユーザーが待機室を出てアプリケーションに到達すると、セッションの持続時間で指定された時間を待たずに出入りできます。
    • 待機室は動的な流入と流出をサポートしているため、新しいスポットがより早く現れ、推定待機時間が短く、より正確になります。

アーキテクチャ

待機室は、Cloudflareのデータセンターのグローバルネットワーク上で動作するWorkersに基づいて構築されています。

リクエストが待機室でカバーされているホストまたはパスに到達すると、そのリクエストは最も近い地理的データセンターの待機室ワーカーに送られます。ワーカーは次に、ユーザーをキューに送るかウェブサイトに送るかの決定を下す必要があります。

その決定は、管理者定義の閾値と待機室の状態の2つの要因に依存します。

管理者定義の閾値に関して、重要な2つの指標はtotal active usersnew users per minuteです:

  • total active usersは、待機室でカバーされているページに同時に許可したいユーザーの目標閾値です。

  • new users per minuteは、ウェブサイトへのユーザーの最大流入率の目標閾値を定義します。

これらの値のいずれかに急激なスパイクがあると、キューが発生する可能性があります。total active usersを計算する際に影響を与える別の設定はsession durationです。ユーザーは、待機室でカバーされている任意のページにリクエストが行われてからsession duration分間アクティブと見なされます。

もう1つの要因は待機室の状態で、これはローカルデータセンターレベルで維持されますが、世界中のトラフィックに基づいて継続的に変化します。各データセンターは独自の待機室の状態で作業します。この状態は、その時点での世界中のウェブサイトのトラフィックパターンのスナップショットです。このアプローチの利点は、ワーカーのレベルで決定を下すことで、リクエストに追加の遅延を加えることなく決定を行えることです。待機室のアルゴリズムは、待機室の状態に基づいて各ワーカーに利用可能なスロットの一定数を動的に割り当てます。スロットがワーカー内で不足すると、キューが始まります。追加の遅延がないため、顧客はユーザーに対する追加の遅延を心配することなく、常に待機室をオンにすることができます。

待機室の状態は、数秒ごとにグローバル情報で更新されます。CloudflareのDurable Objectsにパイプラインが設定されており、トラフィックの変化が世界中に伝播されることを保証します。このアーキテクチャは、追加の遅延を導入せず、できるだけリアルタイムに近い精度で決定を下すことを保証します。

アーキテクチャの詳細や、なぜこれらの決定を下したのかについては、私たちの詳細技術ブログを参照してください。