繁体   English   中英

在ElasticSearch中存储News Feed的最佳设计模式

[英]Best design pattern for storing News Feed in ElasticSearch

我们有一个拥有5百万用户的移动应用程序,现在我们正在尝试设计基于ES的新闻源。 目标是有机会创建帖子,存储帖子和订阅其他用户。 所以我们需要根据他的订阅为每个人选择帖子。

经过一些研究和谷歌搜索后,我发现了一些可以在我们的用例中使用的流行方法。

  1. 创建每用户索引 我认为这对我们来说不是一个好主意,因为它需要为每个订阅者索引插入一个新帖子。 另外,如果我们拥有1亿用户呢?

  2. 为所有帖子创建一个索引 然后,对于每个用户,我们可以通过他订阅的用户ID创建一个带有过滤器的别名。 但是,在为用户创建新闻Feed时,我们将不得不使用多个分片。 所以有三种方式。

  3. 由userId路由 它类似于2路,但区别在于我们为每个用户创建一个别名,并通过它的userId进行路由。 缺点是,对于我们索引中的每个帖子,将有多少人应该使用它的副本。

我读过另一种模式。 但我仍然没有明确的愿景 - 在我们的用例中最好的做法是什么。

此外,我们有替代ES - Cassandra。 但该决定仍在进行中。

也许有人可以在这个问题上说出他的专业知识并提出建议。 批评也很受欢迎。

先感谢您。

您可以使用观察者模式,您的新闻将发送给您的所有订阅者

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM