弹性搜索中的多租户

时间:2017-01-26 06:40:00

标签: elasticsearch multi-tenant amazon-elasticsearch

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

  1. 每个租户使用一个索引
  2. 每个租户使用一种类型
  3. 所有租户与自定义路由共享一个索引
  4. 根据此博客https://www.elastic.co/blog/found-multi-tenancy,第一个选项会产生内存问题。但不清楚其他选择。

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

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

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

    请注意,我们会利用AWS基础架构。

2 个答案:

答案 0 :(得分:18)

我们现在正在考虑同样的问题,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 :(得分:3)

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

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

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