1

Ning や SocialGo などのプラットフォームがどのように設計されているか知りたいです。特にソーシャル ネットワーク プラットフォームについてではありませんが、ユーザーが同様の Web サイトを構築できる一般的なプラットフォームです。

私の理解では、ユーザーが登録すると、メンバーが登録してその特定のユーザー生成サイトにアクセスできるサブドメインを取得します。サイトを生成するユーザーごとに複製される共通のデータベース構造があると思います。

個々のサイトが成長したときに、それらがどのように拡張されるのか疑問に思っています. また、新しい機能を導入する場合、利用可能なすべてのサイトにどのように組み込むのでしょうか? たとえば、データベース構造の変更を必要とする新機能は、既存のすべてのサイトに対してどのように行うことができますか?

うん。似たようなものを作りたい。しかし、これらすべての複雑さが頭に浮かびました。何かを開発した経験のある人がこの複雑な知識を共有できれば、それは素晴らしいことです。

ありがとう。

4

2 に答える 2

3

foo and bar 企業のアーキテクチャを推測するのはかなり難しいですが... 私のビジョンは、選択したオペレーティング システムの仮想化された基本インストールに、独自のデータベースで事前構成された素晴らしいソーシャル アプリをバンドルすることです。マスター/スレーブ クラスターに設定またはリンクされます。

したがって、ユーザーが来て新しいソーシャルアプリのクローンを登録するたびに、問題が発生します。テンプレートに基づいて新しい仮想マシンを作成することで、システムがジョブを実行します。これは自動構成に数秒かかる場合があります...まあ、そのソーシャルネットが揺らいでスケーリングする必要がある場合; 他のいくつかの仮想マシンのクローンを作成し、それらを結び付けるだけです。vip、キャッシュ、フロントエンド、およびマスター/スレーブ データベースのペア。すべてのテンプレートを使用できます。

この仮想マシンは完全なオペレーティング システムである必要はないことに特に注意してください。OpenVZ やその仲間 (FreeBSD ジェイル) などのテクノロジーを使用してのみ、ユーザーランドを構築することができます。

http://www.opennebula.orgもチェックしてください。

さて、これは私の単純な 2 セントです。私もこれを学んでいます。

于 2010-11-17T15:02:13.710 に答える
0

非常に多くのユーザーに対応するサイトは、通常、リレーショナルデータベースを使用しません。リレーショナルデータベースからデータを十分な速度で引き出すことはできません。また、データのコピーを1つだけ持つこともできません。

彼らがどのようにシステムをプログラムしたかは正確にはわかりませんが、ここでは彼らがどのようにプログラムしたかを推測します。

たとえばFacebookを例にとると、ページを開くと、友達の壁と他の人々の壁の両方に、友達が書いたものが表示されます。

ここでのポイントは、あなたがあなたの壁に書くとき、システムはあなたのすべての友達の壁にも同じ情報を書くとき、誰もが壁を持っているということです。そのため、友達が自分のページをリクエストすると、すべての情報が1か所にまとめられ、すぐに返されます。

データベース側では、データベースは名前/値ペアデータベースです。値の部分にあるものは、異なるバージョンであり、バッチで更新される可能性があります。(1億行のリレーショナルテーブルに列を追加すると、おそらくしばらくの間テーブルがロックされます)

于 2010-11-13T23:27:31.877 に答える