我们有一个拥有5百万用户的移动应用程序,现在我们正试图设计基于ES的新闻Feed。目标是有机会创建帖子,存储它们并为其他用户订阅。所以我们需要根据他的订阅为每个人选择帖子。用于在ElasticSearch中存储新闻Feed的最佳设计模式
经过一番研究和谷歌搜索后,我发现了一些可以在我们的用例中使用的流行方式。
创建索引每用户。我认为这对我们来说不是一个好主意,因为它需要为订阅者的每个索引插入一个新帖子。另外,如果我们有1亿用户呢?
为所有帖子创建索引。然后,对于每个用户,我们可以使用他订阅的用户ID创建一个别名。但是,当我们为用户创建新闻馈送时,我们必须对许多分片进行分析。所以有3种方法。
路由由userId。它与2种方法类似,但不同之处在于,我们为每个用户创建一个别名,路由它的userId。缺点是对于我们索引中的每一篇文章,都会有多少人需要多少份。
还有另外的模式,我读过。但我仍然没有明确的愿景 - 我们的使用案例中的最佳实践是什么。
此外,我们有ES - Cassandra的替代品。但决定仍在进行中。
也许有人可以说他在这个问题上的专业知识,并给出建议。批评也是受欢迎的。
预先感谢您。
您是否找出最佳方式..?如果可以,请分享吗?谢谢 – Bujji