弹性搜索中的多租户

问题描述 投票:0回答:3

我们计划为我们的多租户应用程序引入弹性搜索(AWS)。我们有以下选项,

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

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

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

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

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

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

elasticsearch multi-tenant amazon-elasticsearch
3个回答
37
投票

我们现在正在考虑同样的问题,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

基本要点:

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

11
投票

这个环节太重要了,这里就不提了: http://www.bigeng.io/elasticsearch-scaling-multitenant/

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

tldr;他们有围绕分片分配过滤构建的索引组,以隔离集群中节点之间的负载


2
投票

总结所有答案和文章,

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

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

参考:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.