面接の質問: 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の第一人者ジェフ・ディーン氏がGoogleのAI事業を統括

Googleの人工知能事業のトップレベルで人事異動があった。19年間Googleに在籍してきた人工知...

人工知能の代表的な応用分野トップ10の一覧と技術原理の図解

[[329146]]この記事では、「アルゴリズム」という単語を非常に簡略化して使用し、単一のアルゴリ...

戦闘計画システムにおける人工知能技術の応用に関する研究

近年、人工知能技術は飛躍的な進歩を遂げており、各国は人工知能技術の戦略的意義を認識し、国家戦略レベル...

マシンビジョンを超えて、ロボット認識完成計画

人工知能の目標の 1 つは、コンピューターが人間の視覚、聴覚、触覚などの知覚能力をシミュレートし、画...

インターネット技術起業家は、2 つのセッションで提案を行う際にどのような点に重点を置いていますか?

[[258735]] 3月3日、毎年恒例の全国「両会」が正式に始まりました。「両会」シーズンが始ま...

Xunlei 創設者 Cheng Hao: 人工知能起業における 6 つの核心課題

編集者注:この記事はWeChatの公開アカウントHaoge Says(ID:haogetalks)か...

パラメータ数はわずか1/700で、性能はGPT-3.5を超えます! CMU+Tsinghua オープンソース Prompt2Model フレームワーク

大規模言語モデル (LLM) に基づいて、開発者やユーザーは、タスクを記述し、いくつかの例を示して自...

人工知能と機械学習がビジネスに及ぼす影響

[[400670]]人工知能と機械学習が今日のテクノロジー業界のあらゆる部分に影響を与えていることは...

マイクロソフトが新たな特許を取得: 移動中のダイナミックなドローン配達システム

海外メディアNeowinによると、マイクロソフトが取得した最新の一連の特許の中に、潜在的な新しい配信...

烏鎮サミットから10年:呉永明が初めてアリババの新たな変化について言及

ノア著制作:51CTO テクノロジースタック(WeChat ID:blog) 「夜、烏鎮の橋のそばの...

アンドリュー・ン氏のチームが2019年のAIトレンドを振り返る:自動運転は寒い冬を迎え、ディープフェイクはモンスターとなった

あと数日で2019年も終わりです。今年は AI が夢から現実へと移り変わる年です。NLP から自動運...

人工知能が教育分野に参入し「スマート教育」を創出

最先端の技術力に加え、人工知能は教育分野にも進出し始めています。北京では先日、中国・外国教師科学教育...