我目前正在单个主机上运行 Elasticsearch v2.3 集群(使用 docker 容器)。(1 个网关、3 个主节点和 3 个数据节点)
在不久的将来,我将升级到 Elasticsearch v5.x,并且我质疑在这种情况下保留集群配置是否实际上是最优的方法。
如果某个节点决定关闭,则集群配置设计为回退,我看到的唯一情况是主机可能出现问题,这又会导致所有节点关闭,因此这个优势变得无效。
在我看来,运行单个 Elasticsearch 节点的好处是该节点可以使用更多的 RAM?(由于集群设置中的其他节点的 RAM 变得可用......)
请留下您对此的想法和经验...
PS:在中长期,我计划转向 PaaS 解决方案(阅读:基于云的 Elasticsearch 服务)
答案1
对于 Elasticsearch,这完全取决于您的索引大小。ES 会尝试将所有内容放入内存中,因此内存越多越好。如果内存不足以容纳整个数据集,则您的索引至少应在内存中。索引就像一个目录,如果 ES 可以快速查找索引,那么获取数据似乎会很快。但速度不如全部在内存中那么快。
如果索引无法放入内存,ES 必须在每次请求时从磁盘加载它,这会导致速度非常慢。
所以对于内存来说,这完全取决于 elasticsearch 中的数据集和索引的大小。