32

私は、世界中のどこからでもいつでもwww.google.comにアクセスして、返されるページをすばやく取得する方法にしばしば驚かされます。

確かに、彼らは出力を圧縮し、最小限の設計を維持します-それは助けになります。

ただし、DNSが「www.google.com」としてリストしているWeb上にあるボックスに対して、何百万もの同時ヒットが必要です。

Apacheまたは他のWebサーバーをセットアップしたすべての人は、数百万は言うまでもなく、数千の同時接続を取得し始めるまで、物事が素晴らしく、超高速であることを知っています

それで、彼らはどのようにそれをしますか?彼らはサーバーマシンのファーム全体を持っていると思いますが、あなたはそれを決して知りません。私がちょうど今ベライゾンに行ったとき、URLはwww22.verizon.comでした。「www22.google.com」は表示されません

彼らが使用している特定のテクノロジー、またはGoogle以外の人間が同じことを行うために使用できるテクノロジーについてのアイデアはありますか?

4

8 に答える 8

45

google.com、update.microsoft.com、および驚くほど高い総帯域幅を処理するその他のサービスは、DNSを介して魔法の多くを実行します。

BGPエニーキャストルーティングは、世界中の複数のポイントからDNSサーバーのIPアドレスをアナウンスするために使用されます。各DNSサーバーは、地理的に近いデータセンター内のIPアドレスにgoogle.comを解決するように構成されています。したがって、これは地理的に基づく負荷分散の最初のレベルです。

次に、google.comのDNSクエリは少数のIPアドレスしか返しませんが、DNSサーバーは応答で広範囲のアドレスを迅速に循環します。google.comをリクエストする各クライアントは特定の回答を取得し、しばらくの間その回答をキャッシュすることが許可されますが、次のクライアントは異なるIPアドレスを取得します。つまり、これは負荷分散の2番目のレベルです。

第3に、従来のサーバーロードバランサーを使用して、セッションを単一のIPアドレスから複数のバックエンドサーバーにマッピングします。つまり、これは負荷分散の第3レベルです。

于 2008-10-17T02:15:31.217 に答える
15

この記事はあなたにとって興味深いかもしれません:

Google Platform:Googleのウェブサイトの背後にある技術インフラストラクチャ

于 2008-10-17T02:13:21.767 に答える
7

昨夜オースティンで開催された Google のオープン ハウスで、Alan Eustace はオレゴン州ザ ダレスにある Google のデータ センターの写真を見せ、そのサイズはフットボール競技場約 3 つ分だと述べました。

これは新しいものの 1 つですが、Google には複数のデータ センターがあります。各クエリが同じコンピューターに送信されるわけではありません。

それでも、Google が所有するコンピューターの数と、毎秒 Google に対して実行されるクエリの数を推測すると、個々のサーバーが非常に多くのリクエストを処理しているに違いありません。

これがどのように促進されるかについての読み物は次のとおりです。

http://research.google.com/archive/bigtable.html
http://labs.google.com/papers/gfs.html

http://research.google.com/だけでも、たくさんのクールな情報があります。

于 2008-10-17T02:45:18.460 に答える
4

Moisheの言うとおりです。Google の規模で静的な Web コンテンツを配信するだけでも十分に困難ですが、それは十分に理解されており、他の多くの人も同じことを行っています。

しかし、Google がその先駆者となったのは動的コンテンツの配信でした。Google の論文がすべての始まりでした: The Anatomy of a Search Engine . 多くの巧妙なテクニックがあり、そのうちのいくつかはここで言及されていますが、それでも... Googleでクエリを実行し、一緒に属さないクエリ用語を使用します-それらはキャッシュされません-それでも取得されます数百ミリ秒で結果が返ってきます。

さらに複雑にするために、すべての検索結果に動的コンテンツを追加する新しいSearchWiki機能と、ログインしている場合の結果の限定的なパーソナライズがあります.

Google は、すべてを可能にする賢さを (ある程度) 公開することに長けています。最終的には、水平方向に適切にスケーリングするようにすべてを設計することになります。これが、Google がインターネットの指数関数的な成長に追いつく方法です。BigTable、Map/Reduce、Google ファイル システム ファームにハードウェアを追加するだけです。優れたインフラストラクチャと管理機能を備えた多くのコモディティ ハードウェアを使用することで、Google はインデックス全体をメモリに保持する余裕があり、あるマシンから別のマシンへのクエリは、ディスクにアクセスするよりも高速でした。

そんな中、Yahoo! Sun が十分に大きくすることができなくなり、Hadoop に切り替えなければならなくなるまで、ますます大きなモノリシック マシンを購入しましたが、遅すぎました。

Google での HTTP サーバーのスケーリングは簡単です。

于 2008-12-26T15:43:44.203 に答える
3

http://www.akamai.com

または、英語に翻訳して(そして、おそらくChrisの答えを詳しく説明して)、世界中のノードでコンテンツ配信ネットワーク(CDN)を使用します-これらは単なるデータセンターではなく、実際のWebサーバーであることに注意してください(ほとんどの場合はそうはなりませんが)区別の上に巨大な骨を作ります)。アカマイはほんの一例です。「コンテンツ配信ネットワーク」でグーグルを押すと、他の人を見つけることができます。

キャッシング戦略を実装することもできますが、それではそれほど遠くない可能性があります。;)

于 2008-10-17T02:12:24.140 に答える
1

大規模なWebファームに加えて、多くのキャッシュを実行していることは間違いありません。ページのコンテンツから頻繁な検索用語まで、あらゆるものをキャッシュできます。そして、キャッシングは、Google以外の人間もできることです。

于 2008-10-17T02:14:42.203 に答える
0

これは通常のインターネットトラフィック処理です。Googleは文字通り、www.google.comに応答するデータセンター全体を世界中に持っています。

于 2008-10-17T02:09:01.403 に答える
0

カスタム Web サーバー、TCP/IP スタック [インフラストラクチャと共に] もあります。私は何年も前にどこかで読みました... Apache、IIS、または他の商用/人気のある Web サーバーがそれに匹敵するかどうかは疑問です...

于 2008-10-17T03:02:45.023 に答える