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

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

Apr 12, 2017 pm 01:47 PM
PHPの学習

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


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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP開発を学ぶにはどうすればよいですか? PHP開発を学ぶにはどうすればよいですか? Jun 12, 2023 am 08:09 AM

インターネットの発展に伴い、動的な Web ページの需要が高まっています。 PHP は主流のプログラミング言語として、Web 開発で広く使用されています。では、初心者にとって、PHP 開発を学ぶにはどうすればよいでしょうか? 1. PHP の基本知識を理解する PHP は、HTML コードに直接埋め込み、解析して Web サーバーを通じて実行できるスクリプト言語です。したがって、PHP を学習する前に、HTML、CSS、JavaScript などのフロントエンド テクノロジの基本を理解しておくと、PHP の操作をよりよく理解できます。

PHP 学習ノート: Web クローラーとデータ収集 PHP 学習ノート: Web クローラーとデータ収集 Oct 08, 2023 pm 12:04 PM

PHP 学習メモ: Web クローラーとデータ収集 はじめに: Web クローラーは、インターネットからデータを自動的にクロールするツールで、人間の行動をシミュレートし、Web ページを閲覧し、必要なデータを収集できます。 PHP は、人気のあるサーバーサイド スクリプト言語として、Web クローラーとデータ収集の分野でも重要な役割を果たしています。この記事では、PHP を使用して Web クローラーを作成する方法を説明し、実践的なコード例を示します。 1. Web クローラーの基本原則 Web クローラーの基本原則は、HTTP リクエストを送信し、サーバーの H レスポンスを受信して​​解析することです。

PHP 学習ノート: モジュール開発とコードの再利用 PHP 学習ノート: モジュール開発とコードの再利用 Oct 10, 2023 pm 12:58 PM

PHP 学習メモ: モジュール開発とコードの再利用 はじめに: ソフトウェア開発において、モジュール開発とコードの再利用は非常に重要な概念です。モジュール開発では、複雑なシステムを管理しやすい小さなモジュールに分解して、開発効率とコードの保守性を向上させることができ、コードの再利用により、冗長なコードを削減し、コードの再利用性を向上させることができます。 PHP 開発では、何らかの技術的手段を通じてモジュール開発とコードの再利用を実現できます。この記事では、読者がこれらの概念をより深く理解し、適用できるように、一般的に使用されるいくつかのテクノロジと具体的なコード例を紹介します。

PHP 学習ノート: パフォーマンス分析とチューニング PHP 学習ノート: パフォーマンス分析とチューニング Oct 08, 2023 pm 03:21 PM

PHP 学習ノート: パフォーマンス分析とチューニング はじめに: Web 開発では、パフォーマンスは非常に重要な要素です。高性能の Web サイトは、より優れたユーザー エクスペリエンスを提供し、ユーザー維持率を向上させ、ビジネス収益を増加させることができます。 PHP 開発では、パフォーマンスの最適化が一般的かつ重要な問題です。この記事では、PHP でのパフォーマンス分析とチューニングの方法を紹介し、読者がこれらの手法をよりよく理解して適用できるように、具体的なコード例を示します。 1. パフォーマンス解析ツール Xdebug 拡張機能 Xdebug は、強力なパフォーマンス解析ツールです。

2023 年に PHP を学習する最善の方法は何ですか? 2023 年に PHP を学習する最善の方法は何ですか? Sep 10, 2023 pm 09:16 PM

2023 年に PHP を学習する最善の方法は何ですか?インターネットの急速な発展に伴い、コンピューター プログラミングは非常に高い雇用の可能性を秘めたスキルになりました。数あるプログラミング言語の中でも、PHP はネットワーク開発で広く使用されている言語です。 PHP を学習したい場合は、最適な学習方法を知ることが重要です。 PHP は、動的な Web サイトやアプリケーションの開発に使用されるオープンソースのサーバー側スクリプト言語です。 PHP は他の言語に比べて学習時間が短く、応用範囲が広いため、初心者にとって理想的な選択肢です。

PHP でのビデオ特殊効果とフィルター処理関数を学習します。 PHP でのビデオ特殊効果とフィルター処理関数を学習します。 Aug 07, 2023 pm 11:53 PM

PHP でのビデオ特殊効果とフィルター処理機能のメソッドを学習します。PHP は、Web 開発の分野で広く使用されている強力なプログラミング言語です。 Web サイトのデザインの発展に伴い、ビデオの特殊効果やフィルター処理がますます普及しています。この記事では、PHP を使用してビデオ特殊効果やフィルター処理を実装する方法と、よく使用される関数メソッドをいくつか紹介します。 1. ffmpeg 拡張機能をインストールする. ビデオを処理するには、ffmpeg 拡張機能をインストールする必要があります。この拡張機能を使用すると、ビデオ処理のために PHP で ffmpeg コマンドを直接呼び出すことができます。インストールプロセス

PHP 学習メモ: フォーム処理とデータ検証 PHP 学習メモ: フォーム処理とデータ検証 Oct 09, 2023 am 08:52 AM

PHP 学習ノート: フォーム処理とデータ検証 Web 開発において、フォームはユーザーが Web サイトと対話するための重要なコンポーネントの 1 つです。ユーザーが Web サイト上でフォームに記入してデータを送信するとき、Web サイトはデータの正確性と安全性を確保するために、送信されたデータを処理および検証する必要があります。この記事では、PHP を使用してフォームを処理し、データ検証を実行する方法を紹介し、具体的なコード例を示します。フォームの送信とデータの前処理 HTML では、<form> タグを使用してフォームを作成し、フォームを指定する必要があります。

PHP 学習メモ: フロントエンドとバックエンドの分離と API 設計 PHP 学習メモ: フロントエンドとバックエンドの分離と API 設計 Oct 08, 2023 am 09:42 AM

PHP 学習ノート: フロントエンドとバックエンドの分離と API 設計の概要: インターネットの継続的な発展とユーザー ニーズの増大に伴い、フロントエンドとバックエンドの分離の開発モデルはますます注目を集めています。開発者。フロントエンドとバックエンドの分離とは、フロントエンドとバックエンドの開発を分離し、APIを介してデータ連携を行うことで開発の効率性と柔軟性を実現することを指します。この記事では、フロントエンドとバックエンドの分離の概念と API の設計方法を紹介します。フロントエンドとバックエンドの分離の概念: 従来の Web 開発モデルはフロントエンドとバックエンドの結合、つまりフロントエンドとバックエンドの開発が同じプロジェクトで実行されます。