elasticsearch - Elasticsearch中的一致性和分区容限

标签 elasticsearch elastic-stack

由于我是使用[elasticsearch版本7.4]的Elasticsearch的新手,并且经过大量研究,到目前为止,尚不清楚在特定索引中首选多少个碎片/节点。截至目前,我已经配置了3个分片和2个具有3个节点的副本(每个具有8GB RAM,500GB HDD)。并在一个索引中拥有55GB的数据。
因此,在以下几点上,我需要您的意见/建议。

  • 上面没有提供任何碎片,节点,副本就足够了。
  • 对于CAP定理,我更喜欢CP,即:3节点群集中的一致性和分区容限
  • 为了配置一致性,write_consistency = all
  • 对于分区容差,将符合条件的主节点设置为(N / 2)+1(在我的情况下为3)。
  • 最佳答案

    希望我在运行Elasticsearch集群时能给您一些有用的建议:)

    1)

    分片:请参阅this blog post for more information,但是您的平均分片将是55gb/3 = 18gb,这是一个很好的分片大小(以我的经验,最好保持5gb-25gb之间的分片,ES文档也建议这样做)。

    副本:2个副本是我的首选,可以在容错能力和性能之间取得良好的平衡,所以这很好。

    节点:这3个节点应该足够,您将不需要那么多磁盘。使用2个副本,您将在硬盘驱动器的55gb * 3 = 165gb上存储大约1500gb的数据(可能更多取决于您的映射),因此也许可以通过将节点与100gb磁盘一起使用来节省一些钱。

    2)

    对于分区容忍度,我可能建议设置write_consistency=quorum。这样,即使您丢失了一个节点,因此丢失了1个副本分片,您仍然可以写出1个主副本和1个副本副本。否则,您需要重新引导/重新创建该节点以重新开始写入。有关更多详细信息,请参见https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-index_.html#index-consistency

    符合Master资格:是的,我建议至少3个Master节点,因此您需要将所有3个节点设置为Master和Data节点。

    关于elasticsearch - Elasticsearch中的一致性和分区容限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58726600/

    相关文章:

    elasticsearch - Elastic Search 是否支持 ACID 属性

    elasticsearch - Elasticsearch 中的OR&AND运算符

    elasticsearch - 使用filebeat在日期/时间之间合并日志

    amazon-web-services - 使用SSH连接到Amazon Elasticsearch

    elasticsearch - 如何在 elasticsearch 中有多个基于或条件的正则表达式?

    kibana - 如何使用 Filebeat 配置 FluentD (EFK)?

    elasticsearch - 如何使用logstash从log4j文件中过滤JSON数据?

    elasticsearch - Filebeat-json.message_key的配置是什么?

    docker - 无法在主机外部访问docker kibana