大規模なサイトのロードの進化 - 読書「大規模なWebサイトの技術フレームワーク」

大規模なサイトのロードの進化-読書「大規模なWebサイトの技術フレームワーク」
____

著者:八尾毛皮のような悪魔のブログ&健康

01大規模なサイトやソフトウェアの特徴は何ですか?

高い並行性、高流量、マイクロ文字は日活10億である
一般フォーナイン(99.99%)としても知られている7×24高可用性、
、記憶し、大量のデータを管理し
、国家、さらにグローバルユーザは、分散、複雑なネットワーク
セキュリティ環境が劣悪である
要件が頻繁に変更しますこれは、急速な反復を必要とし

最後に、段階的な開発。
すべての主要なサイトは、小さなウェブサイトのアップから開発されています。
全てのサイトアーキテクチャと複雑な進化ではなく、設計上の良いスタート良いです。
場合は出発前の年、と誰が右確かにマイクロチャネルができ日活十億ていないサーバークラスタの最初の時間数千人を考えることはできません。

02道路の進化の最初の初期:アプリケーションとデータの分離

私たちの最初の小さなサイトは何ですか?
論理的な観点からは、サービスアプリケーション、データベース、物理的観点から、単一のサーバが取得します。
ユーザーの増加した後、我々は、データベースと別のアプリケーションを起動する必要があります。

必要なデータベースサーバの設定とそのアプリケーションは、あなたと同じですか?
もちろん、NOです。
アプリケーションは、より多くのビジネスロジックを処理する必要があるので、彼らは少し良くし、より多くのCPUが必要です。
データベースは、このように少し速くディスクと大きなメモリを必要とし、すばやく配置データとディスクキャッシュを取得する必要があります。

もちろん、すべての進化の目標は、より速く、より強く、より高望まれています。しかし、時にはすべてを行うことはできませんが、我々は選択する必要があります。

03セカンドエヴォリューション:キャッシュの最適化

おめでとうは、ウェブサイトの最適化の経験が良い方向に変化し、ユーザーが増加し始めたが、トラブルが再び来ました。
ユーザーはどのように、また、大きなデータベースを持って来るに圧力を増加しましたか?

すべてのモデルは、IT業界で反論できない真実、つまり28件の原則があっても現実です。
同じことが、サイト訪問に真である、ビジネスアクセスの80%は、常にデータの20%に焦点を当てています。
それ二十から三の目の前になっているBaiduは、一つでも最初の数(ない場合は、広告の言葉)で、淘宝網はので、少し、淘宝網は、私たちの良い信用を探している、と大容量の売り手されているの前のターンに物事を購入します;トップ10のホット検索メロンがそれを見ることができますマイクロブログ、あなたは過去にそれをポイントに戻りますか?

したがって、このデータの20%がキャッシュされている、サイト訪問のパフォーマンスを向上させるために、データベースにアクセスするための圧力を低減することが可能ではないでしょうか?
YES。

だから、どのようにキャッシュしていますか?
私たちは通常、キャッシュスキームを使用し、2、すなわち、アプリケーションサーバ上のローカルキャッシュ、および独立した分散キャッシュがあります。

長所と短所は何ですか?
ローカル・キャッシュ・高速化が、アプリケーション・サーバのメモリによって制限され、かつ競合の応用につながります。
独立したキャッシュが遅いペースで、クラスタを使用することができ、分散、しかしすぐに、基本的なネットワークIO消費;しかし、欠点は一言です:高価。別のキャッシュサーバを購入する必要があるため。
だから、現実には、時々 、時には我々は独立したキャッシュサーバを購入していないが、大容量メモリのアプリケーションやデータベースサーバー上で、セットのしきい値、共有メモリ。

04第三の進化:クラスタとクラスタおよびデータベースアプリケーションは、読み取りと書き込みの分離します

うわー、非常に速く、データへのアクセスをキャッシュを使用した後。
しかし、ユーザーが増加しているが、どのようにするか?本当に幸せなトラブルああアプリケーションをサポートします。
単一のデータベースは、ダウンタイム、ああの危険にさらされていないのですか?

残念ながら、クラスタ聖歌。逃げるためにお金を使います。

Application Clustersのデータベースクラスタ。

これが私たちの今日の最も一般的なソフトウェアアーキテクチャの展開シナリオです。

スケジューラは、イコライザ(nginxの、F5等)の原因であることにより、ユーザは、ポーリングまたは特定IPの実施形態では、クラスタ内の任意のサーバに分散アプリケーション・サーバ、圧力の緩和によって要求することができます。
一例として、オラクルのデータベースは、本番サーバのバージョンにRACをインストールすることが可能で、かつアプリケーションがデータベース(仮想IP)へのVIPアクセス、またはデータベースクラスタへのJDBCアクセスを介してアクセスすることができます。
しかし、アプリケーション開発のWebサイトでは、一般的に多くの選択肢をmysqlのです。初期の淘宝網は、Oracleを使用しますが、後者はまたMySQLを回しますが。
なぜに関しては?
ああ、言葉、高価。二つの言葉、非常に高価。三つの言葉、あまりにも高価。

二つのクラスタの利点があります:1、サービスの容易圧力; 2、高可用性、そのうちの一つが故障が、他はあなたのサービスを回復する機会を継続して使用することができます。

ここでは一般的なソフトウェアの進化は離れて取得します。

しかし、このサイトは、別の場所に非常に多くの場合、読んでいるとあまり書いています。
賞賛のポイントは、Chiguaがはるかに少ないよりも遊んで、右のコメント?

とが、状況は消化部で複数のキャッシュ構成を読み取るが、一部の読み取り(キャッシュミス、キャッシュの有効期限が切れる)が残っていますし、すべての書き込み操作は、データベースにアクセスします。
とき、あなたの加入者と一定の規模に急増ので、だけでなく、私達のデータベースのボトルネックになりました。

現在では、ほとんどのデータベースは、データベースから同期するために、レプリケーションからメインデータ更新によって、プライマリ・データベースのマスター・スレーブのホットスタンバイ機能をサポートしています。
この時点で、私たちは、専門のアプリケーションがデータベースモジュール、アプリケーションに対して透過的データベースの読み取りと書き込みの分離へのアクセスを読み書き構築することができます。

時には私たちも、別のサブシステムになるために分社クエリモジュールを専門にします。

05第4進化は進化ではありません:CDNとリバースプロキシ

なぜ、CDNのですか?
モバイル、テレコム、中国聯通......、東、南、南西、北西......、複雑なネットワーク環境、サイトへのアクセス速度領域ごとに同じではありません。
リバースプロキシとのCDNは、彼らの基本的な原則へのアクセスを加速するための手段がキャッシュされています。
差がネットワークCDNベンダーの部屋で展開され、リバースプロキシは、エンジンルームのウェブサイトで展開されています。
逆目標とCDNは、ユーザーへの早期復帰データです。

分散、スプリットとマージ操作の進化:06三国は、第五の進化を入力します

分散データベースは、データが非常に大きい場合にのみ、単一のテーブルのみに使用される、最後の手段です。
多くのウェブサイトやソフトウェアは、単純に、このステップは、分散データベースは、複雑で多くの問題をもたらすでしょう見えません。
サイトより一般的に使用される手段の事業は別の物理サーバー上に展開、スプリット、スプリット異なるビジネスアプリケーション、異なるビジネススプリットライブラリです。

この動きは、外出先で、分割統治と呼ばれます。3カ国では、彼は長い間分間一緒に呼びかけました。

モールのサイトには、例えば、家庭、店、オーダー、販売者であってもよいし、買い手は異なるビジネスチームの管理に分かれてさまざまな製品ラインと、複数のアプリケーションを分割することができますさまざまな製品ラインを、分割します。

ホームは、ハイパーリンクの関係を通じてアプリケーション間で確立することができ、データはまた、メッセージキューを介して配布することができ、もちろん、完全なシステムを形成するためにも同じデータ・ストレージ・システムへの最もアクセスです。

これはマイクロサービスと呼ばれています。

より多くの中小企業のスプリットでは、より多くの複雑な、いくつかの缶共有サービスが行われています。このようなユーザー管理、商品管理として、それはこれらの共有サービス、独立した展開から抽出することができます。
今人気のある言葉で、ビジネスユニットと呼ばれます。

技術的には、誰もが実際に多くの共通点を持っている問題を解決するために、車輪の様々なをしました。このようなファイルは、画像を処理、データの保存と検索システムなど。
また、台湾のテクノロジー。

データに、より断片化解消システムのすべてのように、別のデータベースに格納され、データアイランドの形成。データウェアハウスを作るためにこれらのオープンまで、利用者の肖像画ではない宮の分析?クーポンは見つけるためにビッグデータを殺すために調理し、押します。
そして技術的に、より多くのデータ、データの保存と検索技術ニーズとしても増加しています。我々はそこそこのエンジンおよび検索、などのNoSQLなどの一部の非リレーショナル技術を引用します。
最後に、また、テーブル内のデータ。

部門のいわゆる長い期間は、3カ国は、新たに形成します。


私は公共の数の関心を歓迎:八尾豪華なブログ

ここに私のプログラミングのキャリアの洞察力であり、関連する技術のJava、Linuxでは、オラクル、MySQLをまとめ、作品を読んだの建築デザインの実践と理論があり、チューニングJVM、Linuxでは、データベースが存在し、そこにある......

アート、感情を持って、温度

私の注意へようこそ:八尾毛深い悪魔&健康

いいえ公共ありません

おすすめ

転載: www.cnblogs.com/yaomaomao/p/11882060.html