面接の質問: 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: 人工知能の時代では、チップと基盤となるソフトウェアは基本的に作り直す必要がある

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

ブログ    

推薦する

...

私の国のAI技術は世界をリードしており、人工知能時代のリーダーになるでしょう。アメリカは今回も準優勝になるのでしょうか?

ロボット時代の到来はそう遠くないかもしれない。少し前に、清華大学は「華志兵」という名のヒューマノイド...

さまざまな業界がエッジAIから得られるメリット

ご存知のとおり、人工知能は計算能力を消費し、多数のデータセンターを必要とします。 しかし、適切な状況...

...

エントリーレベルのデータベースアルゴリズム [パート 3]

前回は著者の指示に従って、データ構造におけるクエリ アルゴリズムといくつかのソート アルゴリズムを確...

2019年の世界人工知能チップ産業の市場競争状況の分析

1. 世界の人工知能チップ産業の企業概要の分析近年、さまざまな勢力が AIチップに注目しています。参...

医療における会話型 AI の 5 つの応用

パンデミックの影響で、医療業界は世界中で医師、看護師、その他の医療スタッフの深刻な不足に直面していま...

マイクロソフトは、AIチップが十分に入手できない場合、データセンターのサービスが中断される可能性があると警告している

CNBCによると、7月29日、マイクロソフトは最近発表した財務報告書の中で、データセンターのサービス...

機械学習の第一人者マイケル・ジョーダンが人工知能について語る8つの質問:マスクはAIを理解していない

写真ビッグデータダイジェスト制作Michael I. Jordan は、機械学習、確率、統計、グラフ...

マイクロソフトの英語音声評価機能がアメリカ英語一般版で開始され、教育業界に力を与える

発音は言語学習の重要な部分です。 Microsoft Azure Cognitive Service...

Microsoft は GPT-4V マニュアルを作成しました。166 ページに及ぶ完全かつ詳細な説明と、プロンプト ワードのデモ例が含まれています。

マルチモーダルキングボムモデルGPT-4V、 166ページの「取扱説明書」を公開!これは Micro...

...

AmapとDAMO Academyが共同で車載ARナビゲーションを導入し、従来の運転体験を覆す

Amapは本日、車載ARナビゲーションを共同で立ち上げるためにDAMOアカデミーと協力関係を結んだと...

スタンフォードのAIエージェント研究が熱い! 「好奇心リプレイ」アルゴリズムにより、AIは自分自身を振り返り、積極的に新しい世界を探索することができる。

一夜にして、AI エージェントが突然インターネット全体を支配しました。業界のリーダーたちは、その焦点...

...