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

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

ブログ    
ブログ    

推薦する

グラフニューラルネットワークは急成長を遂げており、最新の進歩はここにあります

[[346023]]グラフニューラルネットワーク (GNN) は近年急速に発展しており、最近の会議で...

エッジ AI とエッジ コンピューティングとは何ですか?

[51CTO.com クイック翻訳] エッジ AI は、人工知能の分野で注目を集めている新しい分野...

人工知能は学習意欲のない人々に取って代わるのでしょうか?

AI は学習を望まない人々に取って代わるのでしょうか? 日常的に AI が使われる時代では、AI ...

...

...

人工知能を背景にした教育の未来を探る

教育の分野では、人工知能の倫理に関する人々の考え方には複数の道が存在します。例えば、主観に基づく検討...

機械学習がゲームにおける物理シミュレーションに革命をもたらす

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

チャットボットと人工知能は2018年に新たな産業革命をもたらすだろう

チャットボットが大きなトレンドであることは間違いありません。ますます多くの大手ブランドが、アプリのタ...

...

テスラが自社開発したスーパーコンピュータDojo!日本の「富岳」に代わる世界初の

[[406953]]自動車メーカー、自動運転企業、バッテリーおよびエネルギー貯蔵企業として、テスラは...

優れたビジネス機械学習のユースケース 5 つ

ビッグデータと機械学習を組み合わせることで、ビジネスの競争優位性を獲得するために必要な、すでに保有し...

サービスロボット市場の最前線に立つセキュリティは注目に値する

現在、サービスロボットは中国のロボットが他のロボットを追い抜く重要なチャンスとみなされており、あらゆ...

レノボAmu:シーンインテリジェンスの時代に新たな「三大デバイス」を再定義

3月19日、杭州でCSHIA 2019スマートホーム業界開幕式が開催されました。ブランドメーカー、イ...

...