eks*_*ksd 5 java spring design-patterns elasticsearch
我们有一个拥有 500 万用户的移动应用程序,现在我们正在尝试基于 ES 设计新闻提要。目标是有机会创建帖子、存储帖子并为其他用户订阅。所以我们需要根据每个人的订阅为每个人选择帖子。
经过一些研究和谷歌搜索,我发现了一些可以在我们的用例中使用的流行方法。
创建每个用户的索引。我认为这对我们来说不是一个好主意,因为它需要为订阅者的每个索引插入一个新帖子。另外,如果我们有 1 亿用户呢?
为所有帖子创建一个索引。然后对于每个用户,我们可以创建一个别名,并根据他订阅的用户 ID 进行过滤。但是,在为用户创建新闻提要时,我们将不得不处理许多分片。所以有3种方式。
通过 userId 路由。它类似于 2 种方式,但不同之处在于我们为每个用户创建了一个别名,并通过它的 userId 进行路由。缺点是对于我们索引中的每个帖子,副本的数量与应该接受的人数一样多。
还有另一种模式,我读过。但我仍然没有清晰的愿景——我们用例中的最佳实践是什么。
此外,我们还有 ES 的替代品 - Cassandra。但该决定仍在进行中。
也许有人可以说出他在这个问题上的专业知识并给出建议。也欢迎批评。
先感谢您。
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |