[英]Best design pattern for storing News Feed in ElasticSearch
我们有一个拥有5百万用户的移动应用程序,现在我们正在尝试设计基于ES的新闻源。 目标是有机会创建帖子,存储帖子和订阅其他用户。 所以我们需要根据他的订阅为每个人选择帖子。
经过一些研究和谷歌搜索后,我发现了一些可以在我们的用例中使用的流行方法。
创建每用户索引 。 我认为这对我们来说不是一个好主意,因为它需要为每个订阅者索引插入一个新帖子。 另外,如果我们拥有1亿用户呢?
为所有帖子创建一个索引 。 然后,对于每个用户,我们可以通过他订阅的用户ID创建一个带有过滤器的别名。 但是,在为用户创建新闻Feed时,我们将不得不使用多个分片。 所以有三种方式。
由userId路由 。 它类似于2路,但区别在于我们为每个用户创建一个别名,并通过它的userId进行路由。 缺点是,对于我们索引中的每个帖子,将有多少人应该使用它的副本。
我读过另一种模式。 但我仍然没有明确的愿景 - 在我们的用例中最好的做法是什么。
此外,我们有替代ES - Cassandra。 但该决定仍在进行中。
也许有人可以在这个问题上说出他的专业知识并提出建议。 批评也很受欢迎。
先感谢您。
您可以使用观察者模式,您的新闻将发送给您的所有订阅者
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.