免責事項: この記事はインターネットで閲覧し、私のコンピューターに保存した文書です。元のアドレスは見つかりません。ここでの声明。インターネットエンジニアに敬意を表します!
もうすぐ旧正月が近づいていることに気づき、ガールフレンドにセーターを買おうと思い、www.taobao.com を開きます。このとき、ブラウザはまず DNS サーバーにクエリを実行し、www.taobao.com を IP アドレスに変換します。ただし、異なる地域または異なるネットワーク (テレコム、チャイナユニコム、チャイナモバイル) にいる場合、変換された IP アドレスは異なる可能性が高いことがわかります。これには、DNS によるドメイン解決による負荷分散の最初のステップが含まれます。名前を指定すると、アクセスを異なる入り口に割り当て、同時に、訪問する入り口がすべての入り口の中で可能な限り最速であることを保証しようとします(これは後述の CDN とは異なります)。
この入口を通じて www.taobao.com の実際の入口 IP アドレスに正常にアクセスしました。このとき、PV、つまりページビュー、ページ訪問が発生します。各 Web サイトの 1 日の合計 PV 量は、Web サイトの規模を表す重要な指標です。タオバオネットワーク全体の平日(非プロモーション期間)のPVは16億~25億。同時に、独立ユーザーとして、今回タオバオで訪問したすべてのページは UV (ユニークビジターユーザー訪問) としてカウントされます。最近悪名高い 12306.cn の 1 日あたりの PV 量はピーク時に約 10 億でしたが、その UV 量はタオバオの 10 倍にも満たなかったのは、誰もがその理由を知っていると思います。
同時に www.taobao.com を訪問する人の数が多すぎるため、Taobao ホームページを生成するサーバーも 1 つだけにすることはできません。 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(Content Delivery Network)の役割です。タオバオは全国に数十、数百の CDN ノードを確立しており、何らかの手段を使って、あなたが訪問する場所 (ここでは主に js、css、写真などを指します) があなたに最も近い CDN ノードであることを確認します。大量のトラフィックがあらゆる場所に分散されているため、アクセラレーション ノードにアクセスします。
問題が発生します。つまり、販売者が新生児をリリースし、いくつかの新しい赤ちゃんの写真をアップロードした場合、淘宝網はこれらの写真が全国の CDN ノードで同期されていることをどのように保証するのでしょうか? ユーザーの使用についてはどうすればよいでしょうか?これには、コンテンツ配信と同期関連のテクノロジーが多数含まれます。タオバオは、この種の問題に対処するために、分散ファイル システム TFS (タオバオ ファイル システム) を開発しました。
さて、いよいよ淘宝網のホームページをロードしました。その後、習慣的にホームページの検索ボックスに「セーター」という単語を入力して Enter キーを押し、この時点で別の PV を生成すると、淘宝網のメイン検索システムが表示されます。あなたに仕え始めます。まず、単語分割データベースに基づいて、入力されたコンテンツに対して 単語分割操作 を実行します。ご存知のとおり、英語は単語に基づいており、単語はスペースで区切られていますが、中国語は単語に基づいており、文内のすべての単語を接続して意味を説明できます。たとえば、「私は学生です」という英語の文は、中国語では「私は学生です」となります。コンピュータは、スペースを介して「student」が単語であることを簡単に認識できますが、「learn」と「生」の 2 つの単語が組み合わされて 1 つの単語を表すことは簡単には理解できません。中国語の文字シーケンスを意味のある単語に分割することは中国語の単語の分割であり、これを 単語の分割 とも呼ぶ人もいます。私は学生です。分詞の結果は次のようになります。私は学生です。
単語の分割後、入力した検索語に基づいてショッピングの意図を分析する必要もあります。ユーザーが検索する際の意図は次のとおりです。 (1) 閲覧型: 明確な買い物の対象や意図はなく、見ながら購入する場合はよりカジュアルで感情的になります。クエリ例:「2010 年の香水トップ 10 ランキング」、「2010 年に人気のセーター」、「zippo の種類は何種類ありますか?」 (2) クエリの種類: 特定の購買意図が反映されています。属性の要件にあります。例:「高齢者に適した携帯電話」、「500元の時計」 (3) 比較タイプ: 買い物の意図は特定の商品に絞り込まれています。クエリ、例: "Nokia E71 E63"、"akg k450 px200"; (4) 決定されたタイプ: 基本的な決定が行われ、特定のオブジェクトに焦点が当てられます。クエリの例: 「Nokia N97」、「IBM T60」。ショッピングの意図を分析することで、メインの検索ではまったく異なる結果が表示されます。
いくつかの手順を経た後、メインの検索システムは、上記およびより複雑な条件に基づいて検索結果をリストします。これらの検索はすべて、1,000 を超える検索サーバーによって完了されます。次に、クリックを開始して、検索された製品を 1 つずつ参照します。赤ちゃんの詳細ページの表示が開始されます。オンライン ショッピングを頻繁に行う友人は、商品を購入した後、販売者が商品詳細ページを何度も変更したとしても、「購入した商品」からその時点のスナップショットを表示できることに気づくでしょう。これは、販売者が商品の詳細で約束した内容を反故にするのを防ぐためです。明らかに、毎年数百億件のトランザクションの製品詳細スナップショットを保存し、すぐに呼び出すのは簡単な問題ではありません。これには、いくつかのシステムの連携も必要ですが、その中でより重要なのは、淘宝網が独自に開発した分散型 KV ストレージ ソリューションである Tair です。
その後、実際にトランザクションを実行するかどうかに関係なく、その後のビジネス ロジックとデータ分析のために、アクセス動作がシステムによって忠実に記録されます。これらの記録の中で、アクセス ログ レコードは最も重要な記録の 1 つですが、これらのアクセスはさまざまな地域のさまざまなサーバーに分散されており、ユーザー数が多いため、これらのログ レコードは非常に大きくなることが以前にわかりました。 、結核レベルに達することは非常に正常です。これらのログ データを迅速かつタイムリーに送信および同期するために、タオバオはリアルタイム データを送信し、レポートやその他の操作の計算のためにバックエンド システムに渡すために使用される TimeTunnel を開発しました。 あなたの閲覧データ、トランザクションデータ、その他多くのデータ記録は保持されます。その結果、タオバオに保存されている履歴データは簡単に 10 PB 以上 (1PB=1024TB=1048576GB) に達する可能性があります。このような膨大な量のデータは、タオバオ システムによって 1:120 という極度の圧縮を通じてタオバオのデータ ウェアハウスに保存されます。そして、2,000 台以上のサーバーで構成される Yunlai と呼ばれる非常に大規模なデータ システムを通じて、継続的に分析とマイニングが行われます。
このデータから、淘宝網はあなたが誰なのか、何が好きなのか、子供の年齢は何歳か、恋人関係にあるかどうか、World of Warcraft をプレイするのが好きな人はどんな飲み物が好きかなどを知ることができます。小売事情、さまざまな商品の盛衰など、膨大な量の情報があります。
ここまで多くのことを述べてきましたが、私は淘宝網で実行されている何千ものシステムのうちのほんの数例を説明しただけです。タオバオのホームページに一度アクセスしただけでも、そこに含まれるテクノロジーとシステムの規模は想像を超えています。これらは長江奨学生や国家科学技術最高賞受賞者を含む 2,000 人以上のトップ タオバオ エンジニアの発案によるものです。名前。同様に、Baidu や Tencent などのビジネス システムも、タオバオよりも決して単純ではありません。知っておくべきことは、あなたが毎日使っているインターネット製品はシンプルで使いやすいように見えますが、その裏側には想像を絶する知恵と労力があるということです。