8

Twitterのタイムラインに似たシステムを設計しようとしていますが、効率を維持しながら、非常に多くのフォロワーから更新を取得する方法に頭を悩ませることはできません。Twitterで1000人をフォローしているとしましょう。フィードにアクセスすると、どのツイートを表示するかがどのようにわかりますか?これは私が考えていることですが、それは非常に非効率的でありそうもないようです:

You have 10,000 friends.
In a for loop, loop through each friend, getting their latest 
  status updates since their last update. 

しかし、それは10,000人の友達をループするのはばかげているようです。しかし、他にどのようにそれを行うかは想像できません。または、次のようになります。

Someone I am following posted a tweet. That tweet is inserted in 
  an array containing the tweets of all people I am following.

しかし、それは奇妙に思えます。20,000ツイートの新しい人をフォローすると、20,000ツイートが配列に挿入され、その人のフォロワーが数百万人の場合、同じツイートのセットの100万X20,000コピーが存在します。 。ですから、それもありそうもないようです。

誰かがそれをどのように行うことができるかについて何か考えがありますか?

4

2 に答える 2

3

nosqlデータベースであるcassandra を使用して、Twitterのすべての基本機能を実装しているtwissandraプロジェクトを確認することをお勧めします。ツイッターはツイートに使用しなくなったそうです

古い実装はここで参照できます

于 2012-09-21T20:02:38.507 に答える
2

私はこのトピックに関するビデオを作成しました、それはツイッターの完全なシステム設計を説明し ますhttps://www.youtube.com/watch?v=KmAyPUv9gOY

于 2018-02-15T17:08:09.923 に答える