2017-04-03 153 views
1

我們有一個擁有5百萬用戶的移動應用程序,現在我們正試圖設計基於ES的新聞Feed。目標是有機會創建帖子,存儲它們併爲其他用戶訂閱。所以我們需要根據他的訂閱爲每個人選擇帖子。用於在ElasticSearch中存儲新聞Feed的最佳設計模式

經過一番研究和谷歌搜索後,我發現了一些可以在我們的用例中使用的流行方式。

  1. 創建索引每用戶。我認爲這對我們來說不是一個好主意,因爲它需要爲訂閱者的每個索引插入一個新帖子。另外,如果我們有1億用戶呢?

  2. 爲所有帖子創建索引。然後,對於每個用戶,我們可以使用他訂閱的用戶ID創建一個別名。但是,當我們爲用戶創建新聞饋送時,我們必須對許多分片進行分析。所以有3種方法。

  3. 路由由userId。它與2種方法類似,但不同之處在於,我們爲每個用戶創建一個別名,路由它的userId。缺點是對於我們索引中的每一篇文章,都會有多少人需要多少份。

還有另外的模式,我讀過。但我仍然沒有明確的願景 - 我們的使用案例中的最佳實踐是什麼。

此外,我們有ES - Cassandra的替代品。但決定仍在進行中。

也許有人可以說他在這個問題上的專業知識,並給出建議。批評也是受歡迎的。

預先感謝您。

+0

您是否找出最佳方式..?如果可以,請分享嗎?謝謝 – Bujji

回答

-1

您可以使用觀察者模式,您的消息將發送給您的所有訂戶

+0

的問題是關於存儲和查詢大量數據 – z0mb1ek

相關問題