Load Balancer Pool Distribution Analyzer
ロードバランサー プール分布アナライザー
異なるロードバランシングアルゴリズムがプールメンバーにどのようにトラフィックを分散するかをシミュレーションします。障害シナリオをモデル化し、再分散効率を比較します。
トラフィック量
プールメンバー
障害シナリオシミュレーション
仕組み: クライアントIPは/16サブネット(10.0.0.0/16)からサンプリングされます。
ソースベースのハッシュの場合、ユニークなクライアントIPはメンバーに決定論的にマッピングされます。
ラウンドロビンはクライアントIPを無視し、順番に分散します。加重は比例的なランダム割り当てを使用します。
一貫性ハッシュは、クライアントとメンバーの両方を仮想リング上に配置します。
プールメンバー
| ID | IP:Port | 重み | ステータス | 操作 |
|---|
分布結果
メンバーごとのセッション分布
障害による再分配分析
一貫性ハッシュリング
リングの読み方: 各メンバーはリング上の複数の点に配置されます(仮想ノード)。クライアントIPはリング上の位置にハッシュ化され、そのリクエストは時計回りで最も近いメンバーに送信されます。メンバーの追加または削除は、そのメンバーが所有していた円弧のみに影響を与えるため、セッションの中断を最小限に抑えます。
アルゴリズム参照
ラウンドロビン
セッションは順番に割り当てられます:メンバー1, 2, 3, ..., N, 1, 2, ... 各メンバーはすべてのリクエストの正確に 1/N を受け取ります。サーバー容量やクライアントアフィニティは無視します。シンプルで予測可能ですが、異種ハードウェアでは失敗しやすいです。
ソースIPハッシュ
クライアントIPをメンバー数で割ったハッシュ値がバックエンドを選択します。同じクライアントは常に同じメンバーに到達するため、ステートフルなアプリケーションに有用です。メンバーの追加または削除は、すべてのクライアントマッピングを再編成します(Nから(N-1)/Nのすべてのセッションに変化)。
加重
各メンバーは、プール全体の重数に対する自身の重みに比例するシェアを受け取ります。重み=4のメンバーは、重み=1のメンバーの4倍のセッションを受け取ります。異種バックエンド容量(例:VM 対 ベアメタルサーバー)をモデル化するために使用されます。
一貫性ハッシュ
メンバーとクライアントの両方が、ハッシュを通じて円形リングにマッピングされます。各クライアントは、リング上で時計回りで最も近いメンバーに送られます。仮想ノード(メンバーごとのレプリカ)は、分布の均一性を向上させます。メンバーが故障した場合、そのセッションはリング上の次のメンバーに移動するだけです—剰余ハッシュの場合の100%の障害に対し、1/Nのセッションしか障害しません。