面接の質問: Nginx の負荷分散アルゴリズムはどのように実装されていますか?なぜ動きと静止を区別する必要があるのでしょうか?

面接の質問: Nginx の負荷分散アルゴリズムはどのように実装されていますか?なぜ動きと静止を区別する必要があるのでしょうか?

面接の質問

Nginx の負荷分散アルゴリズムはどのように実装されていますか? Nginx の負荷分散戦略は何ですか? Nginx で動的操作と静的操作を分離する必要があるのはなぜですか?

面接官の心理分析

主に、申請者が Nginx の基本原理に精通しているかどうかによって決まり、実際のビジネス シナリオに応じて適切な負荷分散 (転送) 戦略を選択できることが求められます。第二に、ウェブサイト構築において、Nginx の長所と短所を理解することで、その欠点を補い、ビジネスを *** アクセス ステータスに到達させる方法を見つけるのに役立ちます。

問題分析

1. Nginx の負荷分散アルゴリズムはどのように実装されていますか? どのような戦略がありますか?

負荷分散は、Nginx でよく使用される機能です。単位時間あたりのサーバーへのアクセス数が多いほど、サーバーにかかる負荷が大きくなります。負荷がサーバー自身の許容量を超えると、サーバーはクラッシュします。

サーバーのクラッシュを回避するために、負荷分散を通じて全員がサーバーの負荷を分散します。サーバーはクラスター化されています。ユーザーがサーバーにアクセスすると、まず転送サーバーにアクセスし、転送サーバーは負荷の少ないサーバーにアクセスを分散します。

Nginx の負荷分散を実装するための戦略は 5 つあります。

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

各リクエストは時系列順に異なるバックエンド サーバーに 1 つずつ割り当てられます。バックエンド サーバーがダウンした場合、障害のあるシステムを自動的に排除できます。

  1. アップストリームバックサーバー{
  2. サーバー 192.168.0.12;
  3. サーバー 192.168.0.13;
  4. }

(2)重量

重み値が大きいほどアクセスされる確率が高くなります。主にバックエンドサーバーごとのパフォーマンスにばらつきがある場合に使用されます。次に、ホスト リソースを合理的かつ効果的に使用するために、マスター/スレーブ状況で異なる重みが設定されます。

  1. アップストリームバックサーバー{
  2. サーバー 192.168.0.12重み= 2 ;
  3. サーバー 192.168.0.13重み= 8 ;
  4. }

重みが高ければ高いほど、訪問される可能性が高くなります。上記の例では、それぞれ 20% と 80% です。

(3)ip_hash(IPバインディング)

各リクエストはアクセス IP のハッシュ結果に従って割り当てられるため、同じ IP アドレスからの訪問者は固定のバックエンド サーバーにアクセスでき、動的 Web ページに存在するセッション共有の問題を効果的に解決できます。

  1. アップストリームバックサーバー{
  2. ip_ハッシュ;
  3. サーバー 192.168.0.12:88;
  4. サーバー 192.168.0.13:80;
  5. }

(4)公正(サードパーティのプラグイン)

upstream_fair モジュールをインストールする必要があります。

よりインテリジェントな負荷分散アルゴリズムである weight や ip_hash と比較すると、fair アルゴリズムはページ サイズと読み込み時間に応じて負荷をインテリジェントに分散し、応答時間が短いページを優先します。

  1. アップストリームバックサーバー{
  2. サーバー server1;
  3. サーバー server2;
  4. 公平;
  5. }

リクエストは、より速く応答するサーバーに割り当てられます。

(5) url_hash(サードパーティ製プラグイン)

Nginxハッシュパッケージをインストールする必要があります

アクセスされた URL のハッシュ結果に応じてリクエストを分散し、各 URL が同じバックエンド サーバーに送信されるように設定すると、バックエンド キャッシュ サーバーの効率がさらに向上します。

  1. アップストリームバックサーバー{
  2. サーバー squid1:3128;
  3. サーバー squid2:3128;
  4. $request_uri をハッシュします。
  5. ハッシュメソッドCRC32;
  6. }

2. 静的な動きと動的な動きを区別する必要があるのはなぜですか?

Nginx は現在最もホットな Web コンテナです。Web サイトの最適化のポイントは、Web サイトを静的にすることです。Web サイトの静的化のポイントは、動的と静的の分離です。動的と静的の分離とは、動的 Web サイト内の動的 Web ページが、一定のルールに従って、頻繁に変更されるリソースと変更されないリソースを区別できるようにすることです。動的リソースと静的リソースが分割された後、静的リソースの特性に応じてキャッシュします。

静的リソースは静的リソースサーバーにのみ送信し、動的リソースは動的サーバーにのみ送信する

Nginx は静的処理能力が強力ですが、動的処理能力が不十分です。そのため、企業では静的と動的の分離技術がよく使用されます。

  • 画像、js、css、その他のファイルなどの静的リソースについては、リバース プロキシ サーバー nginx にキャッシュします。このように、ブラウザが静的リソースを要求すると、プロキシ サーバー nginx は、バックエンド サーバー tomcat に要求を転送せずに、それを直接処理できます。
  • ユーザーがサーブレットや JSP などの動的ファイルを要求すると、そのファイルは処理のために Tomcat サーバーに転送され、動的ファイルと静的ファイルの分離が実現されます。これもリバース プロキシ サーバーの重要な機能です。

<<:  Qi Lu: 人工知能の時代では、チップと基盤となるソフトウェアは基本的に作り直す必要がある

>>:  機械学習におけるこれらの中核的な問題は、数学を知らなくても解決できます。

ブログ    
ブログ    

推薦する

アルゴリズムによる管理下にある労働者:労働の退化と集団不安

[[426039]]かつて人々は、技術の進歩が労働者に大きな解放をもたらし、人類が牧歌的な生活を送れ...

コンピュータービジョン: 画像検出と画像セグメンテーションの違いは何ですか?

人工知能における画像処理人工知能には画像処理のためのさまざまなタスクがあります。この記事では、物体検...

AIは観光業を良いビジネスにするでしょうか?

[[245713]]黄金の9月と銀の10月、観光業界は好景気の日々を待ち望んでいました。一方では、...

TensorFlow を使用してシンプルなロジスティック回帰モデルをゼロから構築する

TensorFlow は Python ベースの機械学習フレームワークです。 Coursera でロ...

インテリジェントな顧客サービス チャット モジュールの 3 つのソリューションを比較すると、どれが気に入りましたか?

現在のインテリジェント顧客サービス市場とその NLP 分野において、チャット モジュールは非常に重要...

...

青春が戻ってきた! AIが『スラムダンク』の登場人物を実在の人物に変身させたら、一番イケメンは流川楓じゃないのか?

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

AIテクノロジーが業界のアップグレードを促進 WOT2018グローバル人工知能テクノロジーサミットがインテリジェントな未来を推進

[51CTO.comからのオリジナル記事] 2018年、人工知能は人類が未来を創造するための最も輝か...

自動化はウエスタン証券のデジタル従業員にとっての出発点

金融テクノロジーと伝統テクノロジーの相互支援は、徐々に証券業界の発展の中核的な原動力となってきました...

人工知能に対するいくつかの態度: 流行を追跡するために個人データを犠牲にする用意がありますか?

最近、AI に関する調査、研究、予測、その他の定量的評価が相次いで発表され、世界中の企業による AI...

IT 労働者の皆さん、AI があなたの仕事を「奪う」ためにやって来ています!今回はデータセンターからスタートします

[[349442]]人工知能に関する議論は現在、自動運転車、チャットボット、デジタルツイン、ロボット...

...

「無人時代」が来ます。準備はできていますか?

DJIのドローン、JDの無人倉庫、アリババの無人スーパー、百度の無人自動車など、数年前からすでに台...