2010-07-26 23 views
0

我有一個網絡應用程序,用戶可以關注彼此。當一個用戶發佈一些操作時,我希望該操作出現在關注者的提要中。一個簡單的方法可能是爲每個用戶保留一個feed.xml文件,其更新如下:PubSub基礎 - 很多追隨者的情況?

UserA後面跟着UserB UserC。

UserA發佈一些內容。

更新用戶B,用戶C XML供稿,如:

// feed-UserB.xml 
UserA flew a kite. 
UserX blah blah blah. 
.... 

// feed-UserC.xml 
UserA flew a kite. 
UserY blah blah blah. 
.... 

這就像發佈 - 訂閱(我認爲)。我不需要它是實時的。我不確定如何處理很多追隨者的情況。如果一個用戶擁有100萬的追隨者,那麼這個樞紐不得不坐在那裏並通知所有100萬用戶?如果集線器運行在一臺服務器上,這可能會長時間佔用cpu,對吧?

感謝

+0

你有一百萬用戶嗎? – 2010-07-26 22:37:21

+0

我有100萬用戶給予或吸納100萬用戶。真的,我只是好奇這個案件是如何處理的,是否必須將通知發送到單獨的機器上以處理這種負載?謝謝 – user246114 2010-07-26 22:41:07

回答

0

你需要知道的是你是否有許多訂戶幾個出版商或幾個用戶更均勻分佈解決許多出版商的情況。

如果這是前者,當A更新時寫入所有XML文件可能並不聰明,但只是產生「根據」需求,假設有問題的需求將會足夠低以至於您不必爲A的每個更新生成所有X,Y,Z文件。這將被稱爲:讀取更新。

如果這是後者,那麼,你的方法是更好的:寫作更新:你每次構建X,Y和Z的更新。

+0

有道理,謝謝。 – user246114 2010-08-10 14:16:46