ホームページ  >  記事  >  PHP の高度なテクノロジーの共有: なぜタオバオとテンセントは、それほど複雑ではないように見える Web サイトの開発に多数のトップ専門家を必要とするのでしょうか?

PHP の高度なテクノロジーの共有: なぜタオバオとテンセントは、それほど複雑ではないように見える Web サイトの開発に多数のトップ専門家を必要とするのでしょうか?

PHPz
PHPzオリジナル
2017-04-12 13:47:134240ブラウズ

タオバオとテンセントは、それほど複雑なウェブサイトではないように見えるにもかかわらず、開発に多数のトップ専門家を必要とするのはなぜですか?人気の科学を新規参入者に提供する方法として、タオバオを例に挙げてみましょう。


PHP の高度なテクノロジーの共有: なぜタオバオとテンセントは、それほど複雑ではないように見える Web サイトの開発に多数のトップ専門家を必要とするのでしょうか?


表示されているページで最も重要なことについて話しましょう:


【商品検索】 この機能があれば、何千もの製品がある場合は、select * from tableXX を使用できます こうすることで%XX%のようなタイトルが出来ます。しかし、10000000000 (100 億) 個の製品がある場合、どのデータベースにもそれらを保存することはできません。ここでは、分散データ ストレージ ソリューションが必要です。さらに、この検索で​​はデータベースからデータを直接取得できないため、検索エンジンを使用する必要があります (簡単に言えば、検索エンジンの方が高速です)。さて、製品が見つかったので、もう終わりです。購入してもいいですか?早いですね、最初のページには誰の商品が載っていますか?ここでは非常に複雑な並べ替えアルゴリズムが必要です。あなたの購買行動に基づいてパーソナライズされた推奨事項を作成できれば、多くの優秀なアルゴリズム エンジニアが一生働き続けるには十分でしょう。


【商品詳細】検索が完了したら、興味のある商品が見つかったら、クリックして商品ページを表示します。このページには、商品の属性、詳細な説明、レビュー、販売者情報などが含まれています。このページのインプレッション数は 30 です。1 億以上の場合、同様に、毎日 10 人が訪問する Web サイトを構築した場合、サーバーへの負荷はまったく感じられませんが、30 億となると、サーバーへの負荷はあまりにも大きくなります。解決すべき多くの問題。まず第一に、これらのリクエストをデータベースに直接適用することはできません。単一マシンまたは分散データベースは、1 日あたり 30 億件のプレッシャーに耐えると、幸福感がまったくなくなるまで崩壊します。この場合に使用されるのは大規模な分散キャッシュであり、販売者情報、評価情報、商品説明はすべてキャッシュから取得され、「商品の閲覧数」などの極端な情報はページを開くたびに更新する必要があります。キャッシュから入手できると思いますか?タオバオはそれを実行しており、商品の詳細全体がキャッシュにあります。


【商品写真】商品には5枚の写真があり、商品説明にはさらに多くの写真があります。淘宝網は何枚の写真を保存する必要があると思いますか? 100億以上。ハード ドライブに非常に多くの写真がある場合、その中から 1 枚をどうやって見つけますか?クラスメートがあなたの写真をコピーしたい場合、何台のハードドライブを準備する必要がありますか?どのくらいの帯域幅を設定する必要がありますか?あなたのネットワークカードはそれを処理できますか?それを彼にコピーするのにどれくらい時間がかかりますか?この規模では、残念ながら市販のソリューションは存在せず、Google の GFS について聞いたことがある方は、それに似た TFS と呼ばれるストレージ システムを自社で開発する必要があります。ちなみに、Tencent にも TFS と呼ばれるそのようなシステムがあります。


【広告システム】タオバオにはたくさんの広告がありますが、何ですか?これは、当社の広告がかなり優れていることを示していますが、多くの人はそれが広告であるとは考えていません。販売者はどうやってタオバオの広告スペースを購入するために入札できるのでしょうか?広告はどのように表示されますか?広告効果を確認するにはどうすればよいですか?これも高度なアルゴリズムを備えたシステムです。


【BOSSシステム】タオバオのスタッフはどのようにしてこのような巨大なシステムを管理しているのでしょうか? 例えば、ある瞬間、ある作家の作品がすべてタオバオから、データベースから消えたと突然発表されました。検索エンジンから広告システムまで、内部のすべての関連データは数分以内に消えてしまうため、優れたバックエンド サポート システムが必要です。


【運用保守体制】これだけ巨大なウェブサイトをサポートするには、何台のサーバーが必要だと思いますか?数千単位?それは分数です。非常に多くのサーバーがある場合、それらのサーバーにはどのようなオペレーティング システムがデプロイされていますか? また、オペレーティング システムのカーネルは最適化できますか? Java 仮想マシンは最適化できますか?通信モジュールのパフォーマンスを絞り出す余地はありますか?ソフトウェアを導入するにはどうすればよいですか?何か問題が発生した場合にロールバックするにはどうすればよいですか?オペレーティング システムをインストールして最適化しましたか? 360 に騙されたり、クラッシュしたりしましたか?ここにはたくさんの出入り口があります。もちろん、これらのことが不可能であるというわけではありません。小さなものから小さなものまで、それを大きくするには、それが得意なダ・ベンが必要であり、また、好奇心旺盛な新人も必要です。



前書き:



とても分かりやすく説明されている、とても興味深い記事を読みました -ちょうどここにいました」 タオバオで購入する何かありました》


もうすぐ旧正月が近づいていることに気づき、ガールフレンドにセーターを買おうと思い、http://www.taobao.com を開きます。このとき、ブラウザはまず DNS サーバーにクエリを実行し、http://www.taobao.com を IP アドレスに変換します。ただし、異なる地域または異なるネットワーク (テレコム、チャイナユニコム、チャイナモバイル) にいる場合、変換された IP アドレスは異なる可能性が高いことがわかります。これには、DNS によるドメイン解決による負荷分散の最初のステップが含まれます。名前を指定すると、アクセスがさまざまな入り口に割り当てられ、訪問する入り口がすべての入り口の中で最も速い入り口であることが保証されます。 (後述のCDNとは異なります)。


この入口を通じて http://www.taobao.com の実際の入口 IP アドレスにアクセスすることに成功しました。この時点で PV、つまりページビュー、ページ訪問が生成されます。各 Web サイトの 1 日の合計 PV 量は、Web サイトの規模を表す重要な指標です。タオバオネットワーク全体の平日(非プロモーション期間)のPVは16億~25億。同時に、独立したユーザーとして、今回タオバオでアクセスしたすべてのページは UV (ユニーク) としてカウントされます。 訪問者ユーザーのアクセス)。最近悪名高い http://12306.cn の 1 日あたりの PV 量はピークで約 10 億ですが、その UV 量はタオバオの 10 倍にも満たないのがその理由は誰でもわかると思います。


http://www.taobao.com に同時にアクセスする人の数が多すぎるため、淘宝網のホームページを生成するサーバーも 1 つだけということはできません。 http://www.taobao.com のホームページを生成するためだけに使用されるサーバーは数百、さらには数千もある可能性があるため、訪問中に表示するページを生成するタスクはサーバーの 1 つに割り当てられます。このプロセスは公平、公平、均等である必要があります (これらの数百または数千のサーバーのそれぞれのユーザー数はほぼ同じである必要があります)。この非常に複雑なプロセスは複数のシステムによって実行されますが、その中で最も重要なものは LVS (Linux) です。 Virtual Server) は、世界で最も人気のある負荷分散システムの 1 つであり、現在 Taobao で働く Zhang Wensong 博士によって開発されました。


一連の複雑な論理演算とデータ処理を経て、今回お見せしたタオバオホームページのHTMLコンテンツが正常に生成されました。 Web フロントエンドについて少しの知識がある人なら、次のステップでブラウザがページで使用される CSS、JS、画像、スクリプト、リソース ファイルを読み込むことを知っているはずです。ただし、同じドメイン名でブラウザが同時に読み込めるリソースの数に制限があることを知っている学生は比較的少ないかもしれません。たとえば、IE6 ~ 7 には 2 つのリソースがあり、IE8 には 6 つのリソースがあり、Chrome の各バージョンは次のようになります。通常は4〜6です。タオバオのホームページにアクセスすると、126 個のリソースを読み込む必要があるため、同時接続数が少ないと、当然ながら読み込みに時間がかかります。したがって、フロントエンド開発者は、多くの場合、上記のリソース ファイルを複数のドメイン名で配布し、このブラウザ制限を回避して、次の CDN 作業の準備も行います。


信頼性の低いニュースによると、ダブルイレブンのピーク時には、タオバオのアクセストラフィックは871GB/Sに達しました。この数字は、手頃な価格にするには 178 万の 4Mb 帯域幅のホーム ブロードバンドが必要であり、中小規模の都市のインターネット帯域幅全体を圧倒できる能力があることを意味します。したがって、これらのアクセス トラフィックを同時に集中させることはできません。また、異なる地域の異なるネットワーク (テレコム、チャイナユニコムなど) 間の相互アクセスが非常に遅いことは誰もが知っていますが、タオバオへのアクセスが遅いことに気づくことはほとんどありません。これは CDN (コンテンツ Delivery Network)、コンテンツ配信ネットワークの役割。タオバオは全国に数十、数百の CDN ノードを確立しており、何らかの手段を使って、あなたが訪問する場所 (ここでは主に js、css、写真などを指します) があなたに最も近い CDN ノードであることを確認します。大量のトラフィックがあらゆる場所に分散されているため、アクセラレーション ノードにアクセスします。


問題が発生します。つまり、販売者が新生児をリリースし、いくつかの新しい赤ちゃんの写真をアップロードした場合、タオバオはどのようにして全国の CDN ノードが同期していることを確認するのでしょうか? ユーザーが使用できる写真は何枚ありますか? ?これには、多数のコンテンツ配信および同期関連テクノロジが関係します。タオバオはこのような問題に対処するために分散ファイルシステムTFS(タオバオファイルシステム)を開発しました。


さて、ついにタオバオのホームページをロードしました。次に、あなたは習慣的にホームページの検索ボックスに「セーター」という単語を入力して、Enter キーを押します。このとき、別の PV を生成します。その後、タオバオの PV が生成されます。メインの検索システムがサービスを開始します。まず、単語分割データベースに基づいて、入力されたコンテンツに対して単語分割操作を実行します。ご存知のとおり、英語は単語に基づいており、単語はスペースで区切られていますが、中国語は単語に基づいており、文内のすべての単語を接続して意味を説明できます。たとえば、英語の文Iは、 私は学生です、中国語で「私は学生です」という意味です。コンピュータは、スペースを介して「student」が単語であることを簡単に認識できますが、「learn」と「生」という単語を組み合わせて 1 つの単語を表すことは簡単には理解できません。中国語の文字シーケンスを意味のある単語に分割することは中国語の単語の分割であり、単語の分割と呼ぶ人もいます。私は学生です。分詞の結果は次のようになります。私は学生です。


単語の分割後、入力した検索語に基づいてショッピングの意図を分析する必要もあります。ユーザーが検索する際の意図は次のとおりです。 (1) 閲覧型: 明確な買い物の対象や意図はなく、見ながら購入する場合はよりカジュアルで感情的になります。クエリ例:「2010 年の香水トップ 10 ランキング」、「2010 年に人気のセーター」、「zippo の種類は何種類ありますか?」 (2) クエリの種類: 特定の購買意図が反映されています。属性の要件にあります。クエリ例:「高齢者向け携帯電話」「500元」 「Watch」; (3) 比較タイプ: ショッピングの意図が特定の製品に絞り込まれています。例: 「Nokia E71 E63」、「akg k450 px200」。特定のオブジェクトに焦点を当てたクエリ: 「Nokia N97」、「IBM T60」 ショッピングの意図を分析すると、メインの検索システムは、それに基づいて検索結果をリストします。これらはすべて、1,000 を超える検索サーバーによって実行され、検索された商品を 1 つずつクリックすると、オンライン ショッピングを頻繁に行う友人がその商品の詳細ページを表示するようになります。商品を購入すると、販売者が商品詳細ページを何度も変更しても、「購入した製品」からその時点のスナップショットを表示できます。これは、販売者による商品の悪用を防ぐためであることは明らかです。毎年何百億ものトランザクションの製品詳細のスナップショットを保存し、すぐに呼び出すことは簡単なことではありません。 また、いくつかのシステムの連携も必要ですが、その中でより重要なものは、淘宝網が開発した分散型 KV ストレージ ソリューションである Tair です。


その後、実際にトランザクションを実行するかどうかに関係なく、アクセス行動はその後のビジネス ロジックとデータ分析のためにシステムによって忠実に記録されます。これらの記録の中で、アクセス ログ レコードは最も重要な記録の 1 つですが、これらのアクセスはさまざまな地域のさまざまなサーバーに分散されており、ユーザー数が多いため、これらのログ レコードは非常に大きくなり、膨大な量に達します。結核レベルは非常に正常です。これらのログ データを迅速かつタイムリーに送信および同期するために、タオバオはリアルタイム データ送信に使用され、レポートの計算やその他の操作のためにバックエンド システムに引き渡される TimeTunnel を開発しました。


あなたの閲覧データ、取引データ、その他多くのデータ記録は保持されます。


これにより、淘宝網に保存される履歴データは簡単に 10 PB 以上 (1PB=1024TB=1048576GB) に達します。このような膨大な量のデータは、タオバオ システムによって 1:120 という極度の圧縮を通じてタオバオのデータ ウェアハウスに保存されます。そして、2,000 台以上のサーバーで構成される Yunlai と呼ばれる非常に大規模なデータ システムを通じて分析とマイニングを続けています。


このデータから、タオバオはあなたが誰であるか、何が好きなのか、子供の年齢は何歳か、恋人関係にあるかどうか、World of Warcraft をプレイするのが好きな人はどのような飲み物が好きかを知ることができます。 etc. さまざまな業界の小売事情から、さまざまな商品の騰落まで、膨大な情報が存在します。


ここまで述べてきましたが、実際、私は淘宝網で実行されている数千のシステムのうちのほんの一部を説明しただけです。タオバオのホームページに一度アクセスしただけでも、そのテクノロジーとシステムの規模はまったく想像を絶するものです。これらは、長江学者や国家科学技術最高賞の受賞者を含む 2,000 人を超えるタオバオのトップ エンジニアの発案によるものです。素晴らしい名前。同様に、Baidu や Tencent などのビジネス システムも、タオバオよりも決して単純ではありません。 知っておくべきことは、あなたが毎日使用しているインターネット製品はシンプルで使いやすいように見えるかもしれませんが、その背後には想像を絶する知恵と労力があるということです。

おすすめ関連記事:

  1. PHPウェブサイトのパフォーマンス最適化の実践: タオバオホームページの読み込み速度最適化の実践

  2. これより安いphpビデオチュートリアルはありますか? PHP中国語ウェブサイト「Dugu Jiijian」シリーズのチュートリアル

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。