我們有一個擁有5百萬用戶的移動應用程序,現在我們正試圖設計基於ES的新聞Feed。目標是有機會創建帖子,存儲它們併爲其他用戶訂閱。所以我們需要根據他的訂閱爲每個人選擇帖子。用於在ElasticSearch中存儲新聞Feed的最佳設計模式
經過一番研究和谷歌搜索後,我發現了一些可以在我們的用例中使用的流行方式。
創建索引每用戶。我認爲這對我們來說不是一個好主意,因爲它需要爲訂閱者的每個索引插入一個新帖子。另外,如果我們有1億用戶呢?
爲所有帖子創建索引。然後,對於每個用戶,我們可以使用他訂閱的用戶ID創建一個別名。但是,當我們爲用戶創建新聞饋送時,我們必須對許多分片進行分析。所以有3種方法。
路由由userId。它與2種方法類似,但不同之處在於,我們爲每個用戶創建一個別名,路由它的userId。缺點是對於我們索引中的每一篇文章,都會有多少人需要多少份。
還有另外的模式,我讀過。但我仍然沒有明確的願景 - 我們的使用案例中的最佳實踐是什麼。
此外,我們有ES - Cassandra的替代品。但決定仍在進行中。
也許有人可以說他在這個問題上的專業知識,並給出建議。批評也是受歡迎的。
預先感謝您。
您是否找出最佳方式..?如果可以,請分享嗎?謝謝 – Bujji