負荷分散と一般的な実装

まず、負荷分散するものです

サーバにアクセスするための単位時間当たりの場合より多く、より大きなサーバー上の圧力。回避サーバがクラッシュするためには、ユーザーがより良い経験を持ってできるように、我々は道によって圧力をサーバロードバランシングを共有する必要があります。

我々は、多くのを構築することができたときに、ユーザーがアクセスしたサイトの、多くのサーバーでは、サーバークラスタ内の小さい方のサーバーの圧力は、その後、アクセス要求をサーバに導入されていることを途中ようにサーバーを選択し、中間サーバにアクセスするために、サーバークラスタを形成します。各ユーザのアクセス以来だから、サーバー上の圧力を共有するために、サーバークラスタ圧力の各サーバがバランスする傾向にあることを保証します、サーバがクラッシュを避けるために。

第二に、ロードバランシングポリシーメカニズム

彼らの全ては、以下のいくつかのアルゴリズムに依存して達成するためにどちらかの割り当てを検討する負荷分散アルゴリズム:

  1. ポーリング(デフォルト)
  2. ポーリング重量(入力するチャンスも大きく、重量が高いです)
  3. IP-ハッシュ
  4. 公正な
  5. URL、ハッシュ

ポーリング(デフォルト)

リクエストは各アプリケーションサーバーに割り当てる交代、アロケーション戦略は比較的簡単です。

短所:ムラが発生する可能性があり、いくつかのサーバは、要求の重い、重い負荷圧を受け入れる負荷の一部は、小さな制御不能です。また、サーバー・セッション間の同期のために必要。

2.ポーリング重量(高い重量、大きな入力するチャンス)

利点:状況に応じて調整することができます。制御は、まだセッション同期を必要とします。

3.IP - ハッシュ

長所:同期セッションの必要はありませんが、固定のIPアクセスを単一のサーバに固定されます。

短所:悪意のある攻撃は、圧倒サーバーを引き起こします。異なるサービスプロバイダと異なる指向領域は、IPは制御不能、不均一になり、集中して表示されることがあります。

4.Fair

適応、ロードバランシングこの対応は、要求を処理するサーバの速度に応じて割り当てられます。プロセスの終了要求早い、と次の要求を取得します。非常に良好ではないように見えます。しかし、一般的には、アカウントにネットワークの不安定性を取っていたと言って、使用しないでください。研究されないままです。このセッションはまた、同期させる必要があります。

5.URL - ハッシュ

いくつかの要求は常にサーバーを再生するように、このハッシュは、URLをベースにしています。キャッシュサーバの使用を助長するが、URLのハッシュ値の偏在が原因である可能性があり、だけでなく、ビジネスに焦点を当てたが、いくつかのサーバーのストレス、特定の低負荷の原因となりました。このセッションはまた、同期させる必要があります。

第三に、いくつかの方法でロードバランシングを実現するために

負荷分散を達成するための多くの方法があります。

  1. 負荷分散ソフトウェア:などの一般的なNginxは、LVSなど。
  2. ハードウェア負荷分散、適切なハードウェアを購入します。
  3. DNS負荷分散:DNSの実施形態では、ドメイン名に対応するIPサーバが複数による名前解決。

ハードウェアに加えて、ここではいくつかの一般的な方法があり、DNS DNSドメイン名の解決が実装され、他の負荷分散ソフトウェアに加えて、以下のとおりです。

  1. HTTPリダイレクト
  2. DNS解決。
  3. リバースプロキシ(nginxの)
  4. IPロードバランシング
  5. リンク層のロード・バランシング(LVS)

1. HTTPリダイレクト

HTTPリダイレクション共通サーバ、場合ステータスコード(302)に応答して、HTTPレスポンスヘッダである特定のアルゴリズム実サーバのIPアドレスに従ってサーバのクラスタになり、ユーザの訪問、ユーザーのブラウザはこの応答を受信したときに、実サーバのIPアドレスは、昇給や再訪問を受け取ることになります。上記のように、ユーザがアクセスした場合、DNS解決して、ドメイン名は、アクセス114.100.20.200次いで、リダイレクト114.100.20.203、再アクセスユーザーのブラウザに、すなわちHTTPをリダイレクト応答を114.100.20.200を得ました。

ここに画像を挿入説明
短所:

  1. このアプローチは二回、パフォーマンスの低下にアクセスするには、ユーザーのブラウザが必要です
  2. HTTPリダイレクトサーバーの負荷分散の処理能力がボトルネックになります
  3. HTTP 302リダイレクト返され、それがSEOの不正行為、下の検索ランキングを決定するために検索エンジンを引き起こす可能性が

2.DNS DNS

私たちは、サーバIPをたくさん持っていますが、ドメイン名のみを使用することができます。私たちは、ドメイン名によるサイトを訪問したときは、DNSサーバーのIPアドレスを使用してサーバーを取得する必要があり、私たちは、それぞれが負荷分散を実現するためにアクセスするために、異なるIPアドレスを取得、DNSサーバー上の特定のアルゴリズムを設定することができます。

ユーザーのアクセスwww.apusapp.com、複数のIPアドレスに対応するドメイン名、DNSサーバによってIPアドレスを取得するには、解決されます場合は、(サーバーのサーバークラスタのIPアドレスのIPアドレスを取得し、参照)実際のサービスを実現するために、このIPアドレスへのユーザアクセス。
ここに画像を挿入説明
利点:

  1. 作業のロードバランシングは、便利で柔軟なサイト管理使いやすいスタッフが、低コスト、メンテナンスの必要性を排除し、DNSサーバーを実行するために残しました。
  2. サーバーは、任意の場所に配置することができます。
  3. 一方、DNSサービスは、最寄りのサーバーのIPアドレスバックは、パフォーマンスを改善することができ、地理的位置の分析に基づいて行うことができます

短所:

  1. 各レベルで、サービスの複数のレベルを.DNS DNSキャッシュとの間の対応に可能性があるときに実サーバをオフライン、それが可能である、DNSサーバーレコードを変更するが、発効前にいくつかの時間この期間中に、そのIPアドレスが使用できない、とドメイン名はまだ、このIPアドレスにアクセスする必要がありますとき、アクセスが失敗します。
  2. DNSサーバと実サーバは、DNS負荷分散が実際にサーバーの現在の動作状態を監視することはできませんので、その負荷分散は非常に良いではない、完全に分離されています。

実際には、大規模なサイトは、手段のバランスを第一級の負荷としてDNSロードバランシング、あるサーバー内のバランスセカンドレベルの負荷、意志、私たちは、DNSのIPアドレスを介して取得、実サーバのIPアドレスではありませんしかし、サーバー負荷の内部IPアドレスがバランスをとります。

3.リバースプロキシ(nginxの)
なぜそれがリバースプロキシと呼ばれる:プロキシとリバースプロキシを:VPNサービスは、我々は一般的に、プロキシ(フォワードプロキシ)として使用するもので、データを取得するためにサイトにアクセスするために、プロキシサーバーにプロキシサーバーをユーザーに要求しますプロキシサーバーの後にし、ユーザーにデータを返します。このプロセスでは、アプリケーションサーバーは、ユーザーのプレゼンスを知りません。ただ、そのプロキシブラウザアクセスを知っています。
リバースプロキシは、プロキシサーバは、プロキシサーバは、ユーザに与えるために、このプロセスでは、ユーザは、実サーバの存在を知らないプロキシサーバーに戻し、その後、実サーバに転送され、ユーザの要求を受信します。

リバースプロキシサーバーのユーザーの訪問は、実サーバに要求を転送するためのアルゴリズムのバランス、プロキシサーバーの負荷に応じて、実サーバはまた、リバースプロキシサーバーを介してデータを返すとき、サーバーのセットを管理します。リバースプロキシサーバーは、内部で使用するために2枚のネットワークカード、使用する外部ユーザーのためのIPアクセス、その他を必要とする内部サーバは、外部のサービス、ありませんので、外部IPを提供していません。

ここに画像を挿入説明

長所:リバースプロキシサーバは、アプリケーション層に位置しており、負荷分散方式、リバースプロキシサーバは、簡単な展開と統合されています。

短所:すべてのユーザーのために、リバースプロキシサーバーのハンドルの要求と応答は、その性能がボトルネックのサーバクラスタになることがあり

注:nginxのは、リバースプロキシサービスを知られています

4.IPロードバランシング

利点:カーネル内のデータ配信のプロセスを完了するために均衡IP負荷、よりバランスのとれたリバースプロキシ優れた処理性能。

短所:NICの負荷分散システム帯域幅がボトルネックになります。

リンク層のロード・バランシング(LVS)

MACアドレス:MACアドレスは、基本的にすべてのコンピュータのように使用することができ、シリアル番号カードのメーカーで唯一の番号、カードに関連し、関連する「IDカード。」フレーム間で対応するコンピュータカードまたはルーティングデータに到達するためのイーサネットMACアドレスによって

ここに画像を挿入説明
パケット転送目的にMACフレームを変更することで、リンク層アドレスをロードバランシング。このように、すべての実サーバおよびサーバロードバランシングは、IPアドレスやリクエストの実際の処理ので、IPパケットの宛先アドレスと送信元アドレスを変更することなく、効果のみを修正することにより、MACアドレスを達成することができ、同じIPアドレスを持っています実サーバの同じIPアドレス、負荷分散サーバアドレス・スワッピングにとてもノーリターンは、伝送のボトルネックが可能になる避けるために、バランスをとる、サーバーの負荷をユーザーのブラウザを与えるに直接応答を送信することができます。

長所:避け負荷分散サーバは、それが最も広く大規模なサイトで使用されるロード・バランシングツールとして使用され、NICのボトルネック帯域になります。

LVS(Linuxの仮想サーバー)でのLinuxはオープンソース製品のバランスをとるリンク層負荷であります

日常の使用

DNSロードバランシングは、地理的レベル、クラスタレベルに対応するバランシングハードウェア負荷、機械のレベルに対応する負荷分散ソフトウェアです。
ここに画像を挿入説明

オリジナルリンクします。https://blog.csdn.net/bpb_cx/article/details/82771168
説明リンクします。https://www.jianshu.com/p/c48af7936329
説明リンクします。https://blog.csdn.net/JACKO_CHAN /記事/詳細/ 81060273

公開された67元の記事 ウォン称賛32 ビュー60000 +

おすすめ

転載: blog.csdn.net/weixin_43751710/article/details/104807125