elasticsearch - 分片/副本设置可实现高可用性

标签 elasticsearch cluster-computing

我们在14个节点的集群中具有嵌入式Elasticsearch的Java应用程序。所有数据都驻留在中央数据库中,并在elasticsearch中对其进行索引以进行查询。完整的索引编制可以随时进行。

系统的查询量很大,写入量很小。文件数量不会超过300.000。
每个文档的大小变化很大,从仅几个id到从例如几页的word文档中提取的文本。

我要确保在彻底崩溃的情况下,一个或两个节点可用于系统正常工作就足够了。

写入一致性应该不是问题,因为数据的主副本位于数据库中,并且看来ES能够通过使用最新版本来解决冲突数据(在我们的情况下应该可以)

我的第一个方法是使用1个分片和13个副本。这自然会确保所有节点都可以访问所有数据。这也可以通过具有2个分片/ 13个副本来实现,因此,为了确保所有数据均可用,此副本的数量应为节点数-1,而不取决于分片的数量(可以是任何数字)。

如果将节点数的要求减少到“任何时候都应增加2个节点”,那么分片/副本分布为“x /节点数-2”就足够了。

所以,对于这个问题:

声明上述设置,并且我的想法是正确的,具有1个分片/ 13个副本的设置是否有意义,或者通过添加更多分片并运行例如4个分片/ 13个副本的设置有什么好处?

最佳答案

经过大量研究并与ES-gurus交谈;

只要分片大小足够小,设置此群集的最有效方法实际上就是只有1个分片和13个副本。我无法查明分片的阈值大小,这会使它开始变得更糟。

关于elasticsearch - 分片/副本设置可实现高可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17206615/

相关文章:

elasticsearch - ES搜索部分词-ngram?

hadoop - 与 Hadoop 共享集群

api - WSO2 API 管理器集群主动-主动节点

mysql - 使用 ElasticSearch JDBC river 从表中获取更改

elasticsearch - 在ElasticSearch中建立索引以进行审核

hadoop - 部署HDP集群需要多少磁盘空间?

python - Torque PBS - 运行多个串行 Python 进程

c - 你如何矢量化一个循环?

html - View 函数未返回有效响应。该函数返回None或在没有返回语句的情况下结束flask flask Elasticsearch

elasticsearch - Kibana 返回 "Connection Failed"