[Python]インタビューの質問の要約-ネットワークプログラミングと並行性2

1.ルーターとスイッチの違い

 割り当てIPルータが自動的にローカルエリアネットワークと仮想ダイヤルすることができます
    のみ配布するためのスイッチ、データネットワークを
    ネットワーク層にルータを、アドレス指定のIPアドレス
    ルータは、TCP / IPプロトコルを処理することができる、切り替えない
    中継層の上にスイッチを、MACアドレスは、基礎を
    ルータすることができ1つのIPが複数のホストに配布されます。同じ外部IP
    スイッチで多くのホストを接続できます。異なる外部IP
    ルーターでファイアウォールを提供できます。スイッチは
    、コンピューターとやり取りしてLANアクセスポイントを拡張できず、LANはより多くのコンピューター
    ルーターを接続できます。インターネット接続に使用されます

 

2.ドメイン名解決とは

  ドメイン名解決は、ドメイン名からIPアドレスへの変換プロセスです

 

3.プロデューサーコンシューマーモデルのアプリケーションシナリオと利点

 デカップリング
    は並行性をサポートします。
    不均一とビジーの

    間のマルチスレッド化サポートします。クロールを実行する場合、プロデューサーはURLリンクの生成に使用し、コンシューマーはURLデータの取得に使用します。キューの助けを借りて、マルチスレッド化を使用してクロールを高速化できます。

 

4. cdnとは

cdn:コンテンツ配信ネットワーク
    キャッシュアルゴリズム
        キャッシュアルゴリズムは、ヒット率、ソースサーバーの圧力、ポップノードのストレージ容量、

    配信容量を決定します。
        配信容量はIDC機能とIDC戦略的配信に依存し
    ます。ロードバランシング、
        インテリジェントスケジューリングにより、最適なルート、応答時間、可用性、サービス品質が決定されます
    DNSに
        基づくDNS ベースのロードバランシングは、最適なノードサービス
    サポートプロトコルの
        静的および動的アクセラレーション、ダウンロードアクセラレーション、ストリーミングメディアアクセラレーション、エンタープライズアプリケーションアクセラレーション、モバイルアプリケーションアクセラレーション

    ロードバランシングソフトウェアnginx をインテリジェントに選択します

 

5. nginxとその機能

  nginxは、高性能のHTTPおよびリバースプロキシサーバーであり、メモリ消費量が少なく、同時実行性が強いのが特徴です。
    プロキシサーバーは、ネットワーク情報を取得するためのプロキシネットワークユーザーの
    主な役割です
        1.独自のIPアクセス制限を破り、外部サイトにアクセスします
        2.一部のユニットにアクセスしますまたはグループの内部リソース
        3. China TelecomのIP遮断を突破する
        4.アクセス速度を改善する
        5.ネットワーク攻撃から実際のIPを隠す

    Nginxでサポートされる負荷分散アルゴリズムは次のとおりです
        。1.ウェイトポーリングの
            デフォルトアルゴリズム、受信したリクエストは1つずつ順番に分散では、各バックエンドサーバーに異なる重み値を構成して、異なるサーバーの分散レートを調整できます
        。2.ip_hash
            各リクエストは、開始クライアントのIPのハッシュ結果に従って照合され、各バックエンドが割り当てられます。サーバーが同じである
        3.fairが
            インテリジェントに最初の二つのモードの動的割り当てを組み合わせ、スケジューリングアルゴリズム、あなたはupstream_fair追加モジュールをインストールする必要があり
        4.url_hashの
            効率向上させることができ、静的なサーバーのキャッシュの場合と同様に、ハッシュ結果アサインアクセスURL、nginxのに合わせて、要求を

    利点を:
        1. Webサーバーとして、Nginxは静的ファイル、インデックスファイルを処理し、自動的にリクエストします 高効率
        2. Nginxはプロキシサーバーとして、キャッシュされていないリバースプロキシアクセラレーションを実現して、ウェブサイトの速度を向上させる
        ことができます。3.負荷分散サーバーとして、Nginxは内部でRailsとPHPを直接サポートできます。または、外部サービス用のHTTPプロキシサーバーをサポートできます。アルゴリズムを使用した単純なフォールトトレランスとロードバランシングもサポートします
        。4。パフォーマンスの観点から、Nginxは高い同時実行性をサポートし
        ます。5。安定性の観点から、低メモリ消費量です
        。

 

6. LVの役割は何ですか

  lvs:Linux仮想サーバー、Linux仮想サーバーは仮想サーバークラスターシステムです
    。lvsは主に複数のサーバーの負荷分散に使用されます
        1.ネットワークレイヤーで作業すると、高パフォーマンス、高可用性のサーバークラスターテクノロジーを実現できます
        。パフォーマンスサーバーを組み合わせてスーパーサーバーを形成します
        。3.使いやすく、設定が簡単で、複数の負荷分散方法があります
        。4.クラスター内のサーバーが正常に動作しなくても、全体的な効果には影響しません
        。5。非常に拡張可能

 

7. keepalivedとは何か、およびその機能

 Keepalivedは、Linuxでの軽量の高可用性ソリューションです。
    元々はlvs用に設計されており、特にクラスターシステム内の各サービスノードのステータスを監視するように設計されています
    VRRPプロトコル

 

8. haproxyとは何か、およびその役割

  haproxyは、高可用性、ロードバランシング、TCPおよびHTTPアプリケーションを提供するプロキシソフトウェアです。仮想ホスティングをサポートし、無料で高速で信頼性が高くなります。

    特に、負荷が大きいWebサイトに適しています。これらのサイトは通常、セッションのメンテナンスまたは7層処理を必要とします

    。 :TCPおよびhttpベースのアプリケーションの高可用性、ロードバランシング、およびプロキシ

 

9.負荷分散とは

  1.大量の同時処理を複数のバックエンドノードに
    転送して処理し、作業の応答時間を短縮します。2。単一の重いワークロードを複数のバックエンドノードに転送して処理し、処理後にロードバランシングセンターに戻り、ユーザーに戻します。
    4層の負荷分散
        は4層のトランスポート層から始まり、IP +ポートを使用して要求を受信し、それを対応するマシンに転送し
        ますF5:ハードウェアロードバランサー、優れた機能、高コスト
        LVS:ヘビーウェイト4層ロードソフトウェア
        nginx:ライトウェイトキャッシュ機能を備えた高レベルの4層ロードソフトウェア、柔軟な正規表現
        haproxy:4層転送をシミュレートし、より柔軟
    7層のロードバランシング
        は、7番目の層のアプリケーションレイヤーから始まり、仮想URLまたはIP、ホスト名に従ってリクエストを受信し、次にターンします対応する処理サーバー
        haproxy:固有のロードバランシングスキル、7層プロキシの完全サポート、セッションメンテナンス、マーキング、パス転送
        nginx:httpプロトコルおよびメールプロトコルでより適切に機能する
        apache
        :機能が不十分mysqlプロキシ:

    一般に機能は許容可能     lvsは4層のロードを行い、nginxは7層のロードを行います

 

10. asynioモジュールの役割とアプリケーションシナリオを簡単に説明してください

  asyncioはpython3.4バージョンで導入された標準ライブラリ
    です。非同期IOを直接サポートするプログラミングモデルはメッセージループです。asyncioモジュールから直接EventLoop参照を取得し、実行する必要があるコルーチンをEventLoopにスローします。実装、非同期IOを実現

 

11. genentモジュールの役割とアプリケーションシナリオを簡単に説明してください

  Greenletは、ネットワークへのアクセスなどのIO操作を検出すると、自動的に他のGreenletに切り替え、IO操作が完了するのを待ってから、必要に応じて切り替えて実行を継続します。IO操作には非常に時間がかかるため、プログラムは待機状態になることがよくあります。グリーンレットがコルーチンを自動的に切り替えることにより、IOを待機するのではなく、常にグリーンレットが実行されていることが保証されます。

12.ツイストフレームワークの使用と適用

  twistedは、複数のタスクを同時に処理できるシングルスレッドの非同期フレームワークです。
    シングルスレッドとマルチスレッドは、複数のタスクを処理するために使用されます
    。サイクルは、タスク処理を推進するために使用されます。reactorモデル

    は、アプリケーションクラスを使用してReactorループ管理を解決します。ユーザーはこれを導入するだけで十分です
    サービスクラスを使用してユーザーのビジネスロジックを管理できることを宣言および宣言します。ユーザーはアプリケーションにサービスを登録するだけでよいので
    、遅延クラスを使用してコールバックを管理できます。このオブジェクトのクラスは、ユーザーが異常な問題に対処するのに役立ちます

 

おすすめ

転載: www.cnblogs.com/bk770466199/p/12671898.html