負荷分散技術は、中規模および大規模な Web サイトのパフォーマンスを向上させる上で大きな利点があります。最近、私は「大規模 Web サイト技術のアーキテクチャ」を勉強しています。この記事では、主にいくつかの負荷分散技術について説明します。皆さんのお役に立てれば幸いです。
[プロトコル層] httpリダイレクションプロトコルは負荷分散を実装します
原理:ユーザーのhttpリクエストに基づいて実際のWebサーバーアドレスを計算し、Webサーバーアドレスをhttpリダイレクト応答に書き込んで返します。ブラウザにアクセスすると、ブラウザは再度アクセスします。
写真に示すように:
利点: 比較的シンプル
: ブラウザは 1 回の訪問を完了するためにサーバーへのリクエストを必要としません。業績不振。
httpリダイレクトサーバー自体の処理能力がボトルネックになる可能性があります。
http302 レスポンス リダイレクトを使用すると、検索エンジンが SEO 不正行為と判断し、検索順位が低下する可能性があります。
【プロトコル層】DNSドメイン名解決負荷分散
原則: DNSサーバー上のIPに対応する複数のドメイン名レコードを設定します。たとえば、ドメイン名 www.baidu.com は、一連の Web サーバー IP アドレスに対応します。ドメイン名解決中に、ドメイン名要求は DNS サーバーのアルゴリズムを通じて適切な実サーバーに割り当てられます。
写真に示すように:
利点: DNS への負荷分散作業を処理することで、Web サイトの管理と負荷分散サーバーのメンテナンスの手間が省けます。同僚の DNS また、地理的位置に基づくドメイン名解決もサポートしています。これにより、ユーザーの地理的位置に最も近いサーバー アドレスにドメイン名が解決され、アクセスが高速化され、パフォーマンスが向上します。
欠点: 現在の DNS 解決はマルチレベル解決です。DNS の各レベルはレコード A をキャッシュする可能性があります。Moyi サーバーがオフラインになっても、そのサーバーに対応する DNS レコード A がまだ存在する可能性があり、その結果、サーバーへのユーザーアクセスに失敗しました。
DNS 負荷分散の制御はドメイン名サービスプロバイダーの手に委ねられており、Web サイトはあまり多くの改善や管理を行うことができない場合があります。
サーバーの処理能力に応じて負荷を分散することができません。 DNS 負荷分散は単純なポーリング アルゴリズムを使用するため、サーバー間の違いを区別できず、サーバーの現在の実行状態を反映できないため、負荷分散効果はあまり良くありません。
追加のネットワーク問題が発生する可能性があります。この DNS サーバーが他の DNS サーバーと適時に対話できるようにし、DNS データが適時に更新され、アドレスがランダムに割り当てられるようにするために、DNS リフレッシュ時間は通常、小さい値に設定されます。小さすぎると、DNS トラフィックが大幅に増加し、追加のネットワーク トラフィックが発生する可能性があります。
[プロトコル層] リバースプロキシ負荷分散
原則: リバースプロキシサーバーは、Web サーバー側にあり、負荷分散機能を提供し、Web サーバーのグループを同時に管理します。負荷分散アルゴリズムに従って、要求されたブラウザ アクセスは別の Web サーバーに転送されて処理され、処理結果はリバース サーバーを介してブラウザに返されます。
写真に示すように:
例: ブラウザーによって要求されたアドレスは、リバース プロキシ サーバーのアドレス 114.100.80.10 です。リバース プロキシ サーバーは要求を受信し、負荷分散アルゴリズムの後に実際の物理アドレス 10.0.03 を取得します。リクエスト結果は実サーバレスサーバに送信され、実サーバで処理された後、リバースプロキシサーバを経由して要求元のユーザに返されます。
利点: http プロトコル レベルでの展開が簡単です。
欠点: リバース プロキシ サーバーを使用すると、Web サーバーのアドレスを外部に直接公開できなくなるため、Web サーバーは外部 IP アドレスを使用する必要がなく、通信ブリッジとしてのリバース プロキシ サービスが必要になります。デュアルネットワークカードと 2 つの外部 IP アドレスと内部 IP アドレスを使用して構成されます。
[ネットワーク層] IP負荷分散
原則: 負荷分散は、ターゲットアドレスを変更することによってネットワーク層で実行されます。
図に示すように:
バランシングサーバーは、アルゴリズムが取得するオペレーティング システムのカーネル プロセスデータが処理された後、応答を受信した後、負荷分散サーバーは自身のアドレスを実サーバー アドレスに変更します。元のユーザーのアクセス アドレス データの返却について話しましょう。逆サーバー負荷分散に似ています。
利点: リクエストに応答する際、リバースサーバー負荷分散よりも高速です。
短所: 大きなデータ (大きなビデオやファイル) をリクエストすると速度が遅くなります。
[リンク層] データリンク層の負荷分散
原則: 負荷分散のためにデータリンク層の Mac アドレスを変更します。
図に示すように:
負荷分散サーバーの IP は、管理する Web サービス グループの仮想 IP と一致します。分散データは配布プロセス中に変更されません。アドレスの IP アドレスにアクセスしますが、MAC アドレスを変更します。これらの 2 つのポイントを通じて、データ パケットの元のアドレスと宛先アドレスを変更せずに通常のアクセスを実現できます。 。
利点: アドレス変換に負荷分散サーバーは必要ありません。 ️データの応答は負荷分散サーバーを経由する必要はありません。
欠点: 負荷分散サーバーのネットワーク カードの帯域幅は比較的高いです。
現在、均等距離負荷分散は、代表的な製品として LVS (Linux Virtual Server) が一般的です。
関連する推奨事項:
以上が複数の負荷分散テクノロジーの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
