1

nosql(redisなど)を使用した単純なFacebookのようなフィードアグリゲーターをどのように実行するのか疑問に思っています。

基本的に、多くのプロファイルがあり、各プロファイルには独自のフィードがあります。ユーザーが集計を要求するたびに、システムはこれらすべてのプロファイルをフェッチし、それらを処理(およびグループ化)してから、ユーザーに表示します。このアプローチの問題は、誰かが1000人の友人を持っている場合、システムは1000個のフィードをフェッチして(更新があるかどうかに関係なく)、それらを処理する必要があることです。

どうしますか?

4

1 に答える 1

0

明らかに、リアルタイムで更新を行うことができない場合は、ユーザーが要求する前に更新を行う必要があります。基本的に、すべての既知のフィードのリストがあり、おそらく更新に基づいて、定期的なスケジュールで更新を確認します。各フィードの頻度。ユーザーが集計を要求した場合、既に持っているデータを返すだけで済みます。

データが適度に最新のものであることを確認するのは少し面倒です。あなたがグーグルなら、数分ごとにインターネット全体をチェックすることができます - ほとんどの人にとってオプションではありません. ただし、スマート アップデート スケジューリングと、利用可能なリアルタイム API を組み合わせることで、ほぼリアルタイムに近づけることができます。似たようなものとして、私が取り組んでいる基本的なアーキテクチャは、すべての投稿を保持するデータ ストアと、特定の種類のフィードからデータを取得し、共通の形式で投稿をデータ ストアに追加できる多数のプロセスです。

于 2010-11-16T00:08:34.687 に答える