我们计划为我们的多租户应用程序引入ElasticSearch(AWS)。我们有以下选项,
1.每个租户使用一个索引
1.每个租户使用一种类型
1.所有租户通过自定义路由共享一个索引
根据这个博客https://www.elastic.co/blog/found-multi-tenancy的第一个选项会给予内存问题。但不清楚其他选项。
看起来如果我们使用第三种选择,那么就没有数据隔离。不确定安全性。
我认为第二种选择是更好的选择,因为数据将被隔离。
帮助我确定使用多租户进行ElasticSearch的最佳选项。
请注意,我们将利用AWS基础设施。
3条答案
按热度按时间nvbavucw1#
我们现在正在考虑同样的问题,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.htmlhttps://www.elastic.co/guide/en/elasticsearch/guide/current/one-big-user.html
基本要点:
dgenwo3n2#
这是一个非常重要的环节,不能不在这里提及:http://www.bigeng.io/elasticsearch-scaling-multitenant/
良好的架构困境,以及出色的性能分析/推理。
tldr;它们具有围绕分片分配过滤构建的索引组,以跨集群中的节点隔离负载
dxxyhpgq3#
总结接受的答案和其他文章,
1.使用别名使用自定义路由使用共享索引
1.1)特殊情况:只有在需要时,大客户端才可以有专用索引。
下面的文章涵盖了许多用例以进行详细说明。https://www.elastic.co/blog/found-multi-tenancy
以下是关于如何做到这一点的结论(链接来源:接受答案)https://www.elastic.co/guide/en/elasticsearch/guide/current/faking-it.html