並行性の高いクラスの研究・ポイント・ソリューション - PHPのインタビューの解釈

します。https://coding.imooc.com/class/133.htmlリンクを購入するために、面接のムークラスのネットワーク360ダニエル・PHP総合的な解釈を終えたので、

 

 


1.高並行性と高容量のソリューション

 Zhentiレビュー

並行性の高いPHP大きなトラフィックの問題に対処するためにどのように?

テストサイトの分析

並行性の高いアーキテクチャの概念:同時Baiduの百科事典の概念、我々はインターネット時代における並行処理と呼んでいるもの、同時、高い同時実行は、通常の同時アクセスを指し、つまり、ある時点での同時アクセスの到着の数を持っています。1000万人以上のPVシステム場合は通常、非常に並行システムがあるかもしれません。私たちは、インターネットの分野では、クエリまたは秒あたりの要求のQPS番号、気にどのような高並行性の問題、第二応答値あたりの要求の数。(典型的に同時QPSの数によって決定される)単位時間あたりに処理要求の特定の数。応答時間はかかった時間からの要求に応答して受信されます。PV:ページビューのページ(ページビュー)の数、それは、ページビューやヒット曲、24時間以内にゲストアクセスです。ページ同じ人トラフィックPVとみなさサイト。UV:ユニーク訪問者(ユニークビジター)は、一定の時間枠内で、同じ訪問者がサイトに数回訪れつまり、一つだけのユニークビジター数としてカウントされます。帯域幅:帯域幅は、2つのインデックス、ピークフローおよびページの平均サイズの大きさに焦点を当てる必要が計算されます。デイサイト帯域幅= PV /統計時間(秒に変換)*平均ページサイズ(キロバイト)* 8。同時接続のQPS数は秒あたりの要求の数がHTTP QPSで、同時接続の数は、システムの要求を同時に処理され、同時接続の数に等しくありません。20%濃縮トラフィック時間の80%を意味する第二のピークあたりの要求=(総数PV * 80%)/(6時間* 20秒)。6時間後には、単純な評価です。ストレステストは、テストでは、最大同時テストの最大のクマのQPSに耐えることができます。一般的なパフォーマンステストツール:AB、WRK、http_load、ウェブベンチ、包囲、ApacheのJMeterの。ます。https:ABツールを参照することができ//blog.csdn.net/qq_16399991/article/details/56676780注:テストマシンは、マシンで個別に試験した、オンラインサービスのストレステストを行いませんが、テスト・工作機械ABを観察します等フロントエンドテストマシンのCPU、メモリ、ネットワーク、75%の上限を超えません。

    qps50:QPSが限界に達した小さなサイトを、一般的なサーバが対応することができます。
    QPS 100:100qpsは100件のリクエストを完了するために1秒を意味しますが、この時点で、我々は、データベースクエリ100を完了することを保証することはできません、ただ一つのページSQLクエリと仮定して、0.01秒で完了、要求ごとにリレーショナルデータベースを仮定回、限界に達しているので、最適化プログラム:データベースキャッシュ層、データベースの負荷分散。
    QPS 800:私たちは、帯域幅の数百メガバイトを使用すると仮定し、実際の帯域幅は、各ページがちょうど10Kの下で、この同時条件は、帯域幅の数百メガバイトを食べていると仮定して、サイトの出口は8M程度であることを意味します。プログラム:CDNの加速、負荷分散。
    ノーページ要求ごとにmemcacheのキャッシュデータベースクエリを想定して1000のQPSは、デシベル悲観的同時実行memcaheためのmemcacheの要求よりもはるかに大きい程度2Wをされているが、ネットワーク帯域幅が食べられる前に、示すことは可能です安定しました。解決策:静的HTMLキャッシュ。
    2000年にQPSは、アクセスロックが災害となっている。このレベルのファイルシステムに到達しました。ソリューション:ビジネスの別々の、分散ストレージを行います。

最適化:

    Webサーバーの最適化:負荷分散
     トラフィックの最適化:悪質な要求マスク、加工抗ホットリンク
    フロントエンドの最適化を:非同期要求、ブラウザのキャッシュとファイル圧縮を有効にして追加し、HTTPリクエストを減らす、独立した画像サーバのCDN加速設立、
    サーバー最適化:静的なページ、並行処理、キュー処理、
    データベースの最適化:データベースのキャッシュサブライブラリーのサブテーブル、パーティション、別々の読み取りおよび書き込み、ロード・バランシング

キャッチ

 
2.webリソースのセキュリティチェーンの

概念を:

セキュリティチェーンはどのようなものです:ホットリンクがありますサーバー上のコンテンツの一部は独自のサーバー上にありません示して

盗難防止チェーンの作品:参照するか、署名することにより、サイトには、ソースページのランディングページが指定されたページをブロックしたり返しされていない元サイトの検出時に、あなたが彼のウェブアドレスを表示するために追跡することができ、リソースファイルならば、訪問検出することができます。署名を計算する署名方法は、正当な合法的である計算することによって、署名の方法によっては、それ以外の場合はエラーメッセージを返し、表示されています。

方法:不正な要求の起源、nginxの命令valid_referers、グローバル変数の$ invalid_referer問題ことができます迷彩リファラをブロックするための方法を使用nginxのモジュールリファラのngx_http_referer_moduleドメイン.. 暗号署名の使用、httpAccessModule、抗ホットリンクを実装するサードパーティ製のモジュールを使用
3. HTTPリクエストを減らす

概念を関連する

エンドユーザーの応答時間のわずか10%-20%にすると、文書を受信費やされては、httpを要請:なぜ要求はhttpの数を減らす:パフォーマンスゴールデンルールをすべての構成要素(画像、JS、CSS、フラッシュ、等)はHTML文書参照費やされた時間の残りの80%-90%。改善する方法:これにより、HTTPリクエストを削減、部品点数を削減します。オーバーヘッド生成されたHTTP接続:接続-tcp DNS -要求を送信する-待つ-リソース-時間の分析を

、HTTPを軽減することがやり方を要求:CSSスプライトを、適切なスクリプトやスタイルシートマージ
4.ブラウザのキャッシュや圧縮の最適化技術が
加速する5.CDNを
前記独立した画像サーバの確立
7静的動的言語は
、データキャッシング層8最適化する
最適化層9をデータベースキャッシュ
最適化10.mysqlデータ層
11.webサーバロードバランシングの

概念:

七つの負荷分散の実装:URLロードは、アプリケーションレイヤ情報に基づいてバランシング、代理代表のnginxのは、彼のレイヤ7ロードバランシングを有効にするには、非常に強力な機能です。パワフル、高性能、安定、柔軟な構成がシンプルで、自動的に非同期モードを使用してファイルをアップロードし、バックエンドサーバーが正常に動作していない削除することができ、流通戦略の多様性をサポートしています。nginxの負荷分散戦略:ビルトインポリシー:iphash、重み付けラウンドロビン、拡大戦略:フェア政策:バックエンドサーバーの応答時間は最も負荷のシャントを選択するために、マシンの負荷条件を決定します。一般的なハッシュ:ユニバーサルハッシュは比較的単純で、nginxのは、内蔵することができ、ハッシュキーの変数、整合性ハッシュ:内蔵の整合性ハッシュリングを使用してnginxのは、memcacheのをサポートしています。

nginxの構成:

4つの荷重が達成バランシング:パケットの宛先アドレスとポートによって、一緒にサーバロードバランシングデバイスの設定形態を選択して、内部サーバは、最終的な選択を決定します。LVSは、次の3つの方法NAT、DR、およびTUNがあるサーバロードバランシングを実現します。
----------------
免責事項:この記事はCSDNブロガー「wangxiaoanggのオリジナルの記事は、BY-SAの著作権契約、複製、元のソースのリンクと、この文を添付してくださいCC 4.0に従っています。 。
オリジナルリンクします。https://blog.csdn.net/qq_16399991/article/details/82556527

おすすめ

転載: www.cnblogs.com/jokmangood/p/11735126.html
おすすめ