- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个很棒的教程elasticsearch on ec2关于在 Amazon EC2 上配置 ES。我研究了它并采纳了所有建议。
现在我有了 AMI,可以从这个 AMI 运行集群中任意数量的节点。自动发现已配置,节点按其应有的方式加入集群。
问题是如何以我可以根据集群负载自动启动/终止节点的方式配置集群?
例如,我希望在没有任何负载时仅运行 1 个节点,在峰值负载时运行 12 个节点。但是等等,如果我终止集群中的 11 个节点,分片和副本会发生什么情况? 如果我终止 12 个节点中的 11 个节点,如何确保我不会丢失集群中的任何数据?
我可能想配置 S3 Gateway为了这。但是除本地之外的所有网关都已弃用。
手册中有一篇关于shards allocation的文章.可能是我遗漏了一些非常基本的东西,但我应该承认我未能弄清楚是否可以将一个节点配置为始终保存所有分片副本。我的目标是确保如果这是集群中唯一运行的节点,我们仍然不会丢失任何数据。
我现在能想到的唯一解决方案是将索引配置为具有 12 个分片和 12 个副本。然后当启动多达 12 个节点时,每个节点都会有每个分片的副本。但我不喜欢这个解决方案,因为如果我想在峰值负载下拥有超过 12 个节点,我将不得不重新配置集群。
最佳答案
自动缩放对于 ElasticSearch 没有多大意义。
分片移动和重新分配不是一个简单的过程,尤其是当您有大量数据时。它强调 IO 和网络,并且会严重降低 ElasticSearch 的性能。 (如果您想限制影响,您应该使用 cluster.routing.allocation.cluster_concurrent_rebalance、indices.recovery.concurrent_streams、indices.recovery.max_size_per_sec 等设置来限制集群恢复。这将限制影响,但也会减慢重新平衡和恢复)。
另外,如果您关心您的数据,您不希望永远只有 1 个节点。您需要复制数据,因此您至少需要 2 个节点(如果您觉得使用更高的复制级别更安全,则需要更多节点)。
要记住的另一件事是,虽然您可以更改副本数,但不能更改分片数。这是在您创建索引时配置的并且无法更改(如果您想要更多分片,您需要创建另一个索引并重新索引所有数据)。因此,您的分片数量应考虑数据大小和集群大小,考虑您想要的更多节点数量以及您的最小设置(更少的节点可以容纳所有分片并提供估计的流量吗?)。
所以理论上,如果你想在低时有 2 个节点,在高峰时有 12 个节点,你可以将你的索引设置为有 6 个分片和 1 个副本。因此,在低谷时期,您有 2 个节点,每个节点拥有 6 个分片,而在高峰时期,您有 12 个节点,每个节点拥有 1 个分片。
但我再次强烈建议重新考虑这一点并测试分片移动对集群性能的影响。
关于elasticsearch - 如何在 Amazon EC2 上设置具有自动缩放功能的 ElasticSearch 集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18010752/
我是一名优秀的程序员,十分优秀!