Elastic Search 中的多租户

Multi tenancy in Elastic Search

提问人:Selvakumar Ponnusamy 提问时间:1/26/2017 最后编辑:Jasmel PcSelvakumar Ponnusamy 更新时间:5/12/2023 访问量:30166

问:

我们计划为我们的多租户应用程序引入 Elastic search(AWS)。我们有以下选择,

  1. 每个租户使用一个索引
  2. 每个租户使用一种类型
  3. 所有租户共享一个具有自定义路由的索引

根据这篇博客 https://www.elastic.co/blog/found-multi-tenancy 第一个选项会导致内存问题。但不清楚其他选项。

似乎如果我们使用第三种选择,那么就没有数据隔离。不确定安全性。

我相信第二种选择会是更好的选择,因为数据将被隔离。

帮助我确定使用多租户进行弹性搜索的最佳选择。

请注意,我们将利用 AWS 基础设施。

多租户 Amazon-Elasticsearch

评论

0赞 Val 1/26/2017
在您的上下文中,什么是租户?
2赞 Selvakumar Ponnusamy 1/26/2017
每个客户端都被视为一个租户。
2赞 Val 1/26/2017
然后答案取决于我们正在谈论的租户/客户数量(1-10、10-100、100-1000、?)和您期望的增长因素,即客户数量是否稳定,或者您预计在未来 N 个月内增加 x%?在决定采取哪种策略时,您需要考虑明天,而不是今天。
2赞 Val 1/26/2017
还有第四个选项未提及:所有租户共享一个具有自定义路由的基于时间的索引。当您的客户数量会随着时间的推移而增加时,这是最灵活的选择
2赞 Doston 6/8/2020
你好@SelvakumarPonnusamy,我想知道你选择了什么方法,我们也有疑问,寻找过去的经验。如果您能分享您的经验,我将不胜感激。谢谢。

答:

37赞 jzheaux 3/7/2017 #1

我们现在正在考虑同样的问题,Elasticsearch 的以下文章非常有帮助。

从这里开始: https://www.elastic.co/guide/en/elasticsearch/guide/current/scale.html

并通读每篇后续文章,直到你点击这篇文章:https://www.elastic.co/guide/en/elasticsearch/guide/current/finite-scale.html

以下两个让我大开眼界:

https://www.elastic.co/guide/en/elasticsearch/guide/current/faking-it.html https://www.elastic.co/guide/en/elasticsearch/guide/current/one-big-user.html

基本要点:

  • 每个客户的别名
  • 分片路由
  • 现在,您可以为大客户创建索引,为小客户创建共享索引,并且它们看起来都是单独的索引

评论

1赞 Lior Goldemberg 2/22/2019
有什么方法可以自动管理哪个客户按大小划分有专用索引吗?
1赞 jzheaux 2/22/2019
你可以看看策展人。我不确定具体的用例,但我过去曾用它来执行一些维护类型的任务。此外,Elasticsearch API 非常复杂。也就是说,在零停机时间的情况下将客户从共享索引移动到专用索引的过程非常耗时 - 我不确定我是否会将其自动化(除非我误解了您的意思)。
0赞 synhershko 10/18/2022
事实上,在现实世界中,没有一刀切的方法。我们在这里找到了类似的建议:pulse.support/blog/...
11赞 Froyke 10/25/2017 #2

这是一个非常重要的链接,在这里不一一提及:http://www.bigeng.io/elasticsearch-scaling-multitenant/

良好的架构困境,以及出色的性能分析/推理。

顶级域名;它们具有围绕分片分配筛选构建的索引组,以在集群中的节点之间隔离负载

评论

1赞 eco 2/29/2020
今天的 HTTP 500。
2赞 Anonymous Creator 7/25/2022 #3

总结所有答案和文章,

  1. 使用共享索引 使用别名的自定义路由

    1.1) 特殊情况:大客户端可以有专用索引,只有在需要时。

参考:

用例 => https://www.elastic.co/blog/found-multi-tenancy

怎么做 => https://www.elastic.co/guide/en/elasticsearch/guide/current/faking-it.html