2014-11-09 190 views
0

我正在開發一個使用社交圖的服務。Facebook如何快速知道所有用戶連接?

有一個單獨的模塊,管理用戶連接,基本上負責所有相關的操作。在某些服務中,您需要知道所有用戶連接,以提供正確的響應。

我看到它的方式有4個可能的選項來實現這一點:

  1. 服務器基於連接的支持。

    1.1。每次請求社交圖數據請求來自模塊的好友列表,並處理相應的響應。

    1.2。有Key的內部緩存 - playerID,Value - 所有播放器連接,增加更新緩存到連接模塊的責任,並使用它而不是引用這個模塊。

  2. 基於客戶端的連接支持。

    2.1。添加一個特殊的Cookie與所有朋友的列表,以便服務器可以讀取該Cookie並提供所需的信息,而無需與外部模塊通話。 (這可以通過例如爲Cookie提供一些簽名來保證,並且通過爲所有連接相關數據添加一些路徑來進行優化)

    2.2。在客戶端中添加一個連接管理層,以便通過在每個請求上提供連接列表來顯式請求所有需要的信息。

當我看着facebook Cookie時,有一個fr cookie,我可以推測用於這種功能。

Facebook如何解決這個問題?

+0

你爲什麼不問facebook? – mikalai 2014-11-09 20:04:12

+0

我可以在哪裏做? – mavarazy 2014-11-09 20:05:10

+0

10k +鏈接http://stackoverflow.com/questions/3891873/how-does-facebook-achieve-good-performance我沒有安裝任何截圖工具可能是其他10k +幫助 – 2014-11-10 14:31:46

回答

0

如果你只是想維護每個用戶的朋友列表,你不需要一個完整的社交圖。存儲在數據庫中的朋友的簡單列表可以正常工作。

客戶端存儲通常只用於緩存或會話數據,您不希望用戶因爲重新安裝瀏覽器或切換的計算機而失去其好友列表。

如果您確實想要實現一個完整的社交圖表,請查看圖形數據庫。 Neo4J是我用過的一個,並且很容易開始使用。

相關問題