分散アーキテクチャにおける負荷分散を理解するための記事

分散アーキテクチャにおける負荷分散を理解するための記事

[[264500]]

負荷分散とは何ですか?

Baidu のエントリでの説明は次のとおりです。負荷分散は、英語では Load Balance と呼ばれ、要求またはデータを複数の操作ユニットに分散して実行し、作業タスクをまとめて完了することを意味します。

その目的は、クラスターをスケジュールすることによって、リソース使用率を最大化し、スループットを最大化し、応答時間を最小化し、単一ポイントの過負荷の問題を回避することです。

負荷分散分類

負荷分散は、ネットワーク プロトコルの層の数に応じて分類できます。ここでは ISO モデルを標準として使用し、下から上に次のように分割します。

物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層。

クライアントがリクエストを開始すると、リクエストはレイヤーごとにカプセル化され、サーバーに送信されます。リクエストを受信すると、サーバーはそれをレイヤーごとに解析して、対応するコンテンツを取得します。

ウェブ

レイヤー2負荷分散

レイヤー 2 ロード バランシングは、データ リンク レイヤーのロード バランシングに基づいています。つまり、ロード バランシング サーバーとビジネス サーバーは同じ仮想 IP (VIP) にバインドされ、クライアントはこの VIP を介して直接要求を行います。では、同じ IP の下にある異なるマシンをどのように区別するのでしょうか?そうです、MAC 物理アドレスを通じてです。各マシンの MAC 物理アドレスは異なります。負荷分散サーバーは要求を受信すると、HTTP メッセージ内のイーサネット ヘッダーの MAC アドレスを書き換え、特定のアルゴリズムに従って要求をターゲット マシンに転送して負荷分散を実現します。

この負荷制御方法は粒度が粗いですが、負荷分散サーバーにかかる負荷が比較的小さくなるという利点があります。負荷分散サーバーは、リクエストの入力のみを担当し、リクエストへの応答は担当しません (応答はバックエンドのビジネス サーバーによってクライアントに直接返されます)。そのため、スループットは比較的高くなります。

2層負荷

レイヤー3負荷分散

レイヤー 3 負荷分散は、ネットワーク層の負荷分散に基づいています。簡単に言えば、異なる IP アドレスに応じて、異なるマシンにリクエストを転送します。

この方法は 2 層負荷分散よりも 1 層多くなっていますが、制御の粒度という点では 2 層負荷分散よりも有利というわけではありません。さらに、すべての受信リクエストと送信リクエストは負荷分散サーバーを通過する必要があるため、負荷分散サーバーにかかる負荷が大きくなり、2 層負荷分散よりもパフォーマンスが低下します。

3層荷重

レイヤー4負荷分散

レイヤー 4 の負荷分散は、トランスポート層の負荷分散に基づいています。トランスポート層の代表的なプロトコルは TCP/UDP プロトコルです。 IP を含めるだけでなく、ポート番号も区別します。簡単に言えば、IP + ポート番号に基づいてリクエストを転送します。上記の 2 つの方法と比較すると、制御はポートに限定され、同じマシン上の異なるサービスをロードできるようになります。

このレイヤーは LVS で表されます。

写真なし

レイヤー7負荷分散

レイヤー 7 の負荷分散はアプリケーション層に基づいています。アプリケーション層の代表的なプロトコルとしては、HTTP、DNS などが挙げられます。要求された URL に応じて負荷を転送することができます。 4 層の負荷分散と比較すると、より柔軟で粒度が最も細かく、ネットワーク全体がより「インテリジェント」になります。たとえば、Web サイトにアクセスするユーザー トラフィックは、7 層のアプローチを通じて特定の画像サーバーに画像のリクエストを転送し、キャッシュ テクノロジを使用できます。テキストの要求は特定のテキスト サーバーに転送され、圧縮テクノロジが使用されます。非常に強力な機能であると言えます。

一人でいることを誇りに思う

このレイヤーは Nginx によって表されます。

通常のアプリケーション アーキテクチャでは、Nginx はニーズを完全に満たすことができます。一部の大規模アプリケーションでは、通常、DNS + LVS + Nginx がマルチレベルの負荷分散に使用されます。上記の手順はすべてソフトウェア レベルの負荷分散に基づいています。一部の超大規模アプリケーションでは、よく知られている F5 などの物理的な負荷分散の追加レイヤーが前面に追加されます。

負荷分散アルゴリズムは、次の 2 つのカテゴリに分けられます。

1 つは静的負荷分散であり、もう 1 つは動的負荷分散です。

静的バランス調整アルゴリズム:

1. 投票方法

各ノードへの実際の接続数や現在のシステム負荷に関係なく、リクエストは順番に各ノードに配布されます。

利点: シンプルで効率的、水平方向に簡単に拡張でき、各ノードが文字通りのバランスを満たしています。

デメリット: マシンのパフォーマンスが考慮されていません。樽の中の最短の板の理論によれば、クラスターのパフォーマンスのボトルネックは、パフォーマンスの低いサーバーによってより大きな影響を受けます。

投票

2. ランダム法

リクエストをノードにランダムに分散します。確率統計理論によれば、クライアントがサーバーを呼び出す回数が増えるにつれて、実際の効果はポーリングの結果である平均分布にますます近づきます。

利点と欠点は投票と同様です。

ランダム

3. 送信元アドレスのハッシュ

送信元アドレス ハッシュの考え方は、ハッシュ関数を使用してクライアントの IP アドレスに基づく値を取得し、この値を使用してサーバー ノードの数を法とするということです。結果は、アクセスされるノードのシーケンス番号です。送信元アドレス ハッシュ方式は負荷分散に使用されます。同じ IP アドレスを持つクライアントの場合、バックエンド サーバー リストが変更されていない場合は、毎回同じサーバーにアクセスすることになります。

利点: 同じ IP が常に同じノードに該当し、グレースケールのリリースなど、クライアント要求の方向を手動で介入できます。

デメリット: ノードに障害が発生すると、このノード上のクライアントは使用できなくなり、高可用性が保証されません。ユーザーがホットスポット ユーザーになると、このノードに大量のトラフィックが流れ、ホット ノードとコールド ノードの分散が不均衡になり、クラスターのパフォーマンスを効果的に活用できなくなります。そのため、ホットイベントが発生すると、送信元アドレスハッシュ方式はポーリング方式に切り替わるのが一般的です。

ハッシュ

4. 加重ラウンドロビン

バックエンド サーバーが異なれば、マシン構成や現在のシステム負荷も異なるため、ストレス耐性も異なります。構成が高く負荷が低いマシンに高い重みを割り当てて、より多くのリクエストを処理できるようにします。構成が低く負荷が高いマシンに低い重みを割り当てて、システム負荷を軽減します。重み付けポーリングはこの問題を適切に処理し、重みに応じて順番にバックエンドにリクエストを分散します。

重み付けポーリング アルゴリズムは、n 台のサーバーを含むサーバー シーケンスを生成します。 n はすべてのサーバーの重みの合計です。このシーケンスでは、各サーバーの発生回数はその重み値と等しくなります。さらに、生成されたシーケンス内のサーバーの分散は可能な限り均等である必要があります。たとえば、シーケンス {a、a、a、a、a、b、c} では、最初の 5 つの要求がサーバー a に割り当てられます。これは不均等配分方式です。より良い順序は次のようになります: {a, a, b, a, c, a, a}。

利点: さまざまなマシンのパフォーマンスの問題を考慮し、クラスターのパフォーマンスを最適化できます。

デメリット: 運用環境は複雑かつ変化しやすく、サーバーのストレス耐性を正確に推定できず、静的アルゴリズムではノードの重みをリアルタイムで動的に調整することができないため、大まかな最適化しか実行できません。

加重ラウンドロビン

5. 加重ランダム法

加重ラウンドロビン方式と同様に、加重ランダム方式でも、バックエンド マシンの構成とシステムの負荷に基づいて異なる重みが割り当てられます。違いは、順序ではなく重みに応じてバックエンド サーバーをランダムに要求することです。

6. キー値範囲方式

負債はキー範囲に基づいて計算されます。たとえば、0 から 100,000 までのユーザー要求は最初のノード サーバーを通過し、100,000 から 200,000 までのユーザー要求は 2 番目のノード サーバーを通過します。

利点: 水平方向に簡単に拡張できます。ユーザー数が増えても、古いデータに影響を与えることなくノードを追加できます。

デメリット: 借金の不均衡が生じやすい。たとえば、新しく登録されたユーザーは非常にアクティブで、古いユーザーはそれほどアクティブでない場合、すべての負荷は新しく追加されたサービス ノードに集中し、古いサービス ノードのパフォーマンスは無駄になります。また、単一点障害が発生しやすく、高可用性を満たすことができません。

キー値範囲方式

(注: 上記の単一障害点はすべて、マスタースレーブ方式を使用して解決できます。スレーブノードはマスターノードのハートビートを監視します。マスターノードがダウンしていることが判明した場合、スレーブノードはマスターノードに切り替えてそれを置き換えます。ここで、コストを最大限に削減するためにクラスターマスタースレーブをどのように設計するかという問題について考えることができます)

動的債務残高アルゴリズム:

1. 最小接続数方式

各ノードの現在の接続状態に応じて、接続のバックログが最も少ないノードが動的に選択され、現在のリクエストが処理されます。これにより、バックエンド サービスの利用効率が最大化され、リクエストが各サーバーに合理的に分散されます。諺にあるように、怠け者は何もせずに座っているべきではありません。一緒に動きましょう。

利点: 動的、ノードの状態に応じてリアルタイムで変化します。

デメリット: 複雑さが増し、切断ごとにカウントする必要があります。

実装: 接続数の逆数を重み値として使用します。

2. 最速応答速度方式

各ノードの重みは、リクエストの応答時間に応じて動的に調整されます。応答速度が速いサービス ノードには多くのリクエストが割り当てられ、応答速度が遅いサービス ノードにはより少ないリクエストが割り当てられます。これは一般に「能力のある者はもっと頑張るべき」であり、「貧しい者や弱い者は助けられるべき」であるとして知られています。

利点: 動的、リアルタイムの変更、より細かい制御の粒度、より敏感。

デメリット: より複雑で、リクエストの応答速度を毎回計算する必要があります。

実装: 応答時間に基づいてスコアを付け、重みを計算できます。

3. 観察パターン法

オブザーバー モードでは、最小の接続数と最速の応答時間を組み合わせ、これら 2 つの指標を考慮して重みを割り当てます。

<<:  IDC の視点から見た AWS の中国での成長

>>:  クラウド ERP はわずか 6 週間で迅速にリリースされました。 Oracle NetSuite の違いは何ですか?

推薦する

クラウド バックアップ プロバイダーを選択するための 6 つのベスト プラクティス

企業は、優れたクラウド バックアップ ベンダーを選択するための 6 つのベスト プラクティスを知って...

麻雀カードの動画を撮影して車を購入という最新ニュース:Douyinの関係者が噂を否定

月収10万元の起業の夢を実現するミニプログラム起業支援プランA5ベンチャーネットワーク(公開アカウン...

「自慰」から見るマーケティング戦略

WeChat 5.0 と同時にリリースされた「飛行機を撃つ」という通称で知られるミニゲーム「飛行機戦...

SEO診断: 新規企業ウェブサイトのプロモーションにおける6つのよくある誤解

A5 Webmaster NetworkのSEO診断チームは、企業ウェブサイトを診断する際に、多くの...

クラウドスキルのギャップはデジタル変革の成功の大きな障壁となっている

SoftwareOne のレポートによると、世界中の企業の 98% がクラウド スキルのギャップに直...

ファーストレベルドメイン名とセカンドレベルドメイン名間の友好リンクの交換を表示する方法

多くの人は、ファーストレベルドメイン名とセカンドレベルドメイン名が何であるかを理解していません。実際...

ランキングに影響を与えるウェブサイトの17の隠れた危険性

ウェブサイトを作成する人は誰でも、検索エンジンでのサイトのパフォーマンスを非常に気にしています。特に...

集中砲火を浴びせる動画サイトは、Youku や iQiyi の進化の可能性となるでしょうか?

要約: 連射動画の焦点は動画ではなく連射であり、連射は実は社会や文化と関係があります。この2つが動画...

ramnodeはどうですか?ロサンゼルスデータセンターのOpenStackクラウドサーバーの簡単なレビュー

Ramnode は 2005 年に OpenStack クラウド アーキテクチャに基づくクラウド サ...

呂松松:独創性は百度の支持を得られない

Baidu はコンテンツに、Alibaba は電子商取引に、Tencent はソーシャル ネットワー...

AWS、Azure、Google Cloud Platform を選択する 10 の理由

クラウド コンピューティング プラットフォームはコモディティ ビジネスです。当然ながら、クラウド コ...

アマゾン中国が2015年の書籍ランキングを発表

12月10日、アマゾン中国は北京で2015年の年間書籍ランキングを発表した。これには「年間書籍売上ラ...

SEOの考え方

Baidu は何度も変更を重ねており、SEO はますます難しくなっています。多くの人が「2013 年...

Citrix iForum サミットが中国で初めて開催されます

Citrix Systems は、8 月 17 日に初めて北京で iForum 仮想コンピューティン...