【问题标题】:Having consistency set to 'all' and refresh set to true causing ElasticSearch to timeout将一致性设置为“全部”并将刷新设置为 true 导致 ElasticSearch 超时
【发布时间】:2015-11-13 22:34:11
【问题描述】:

问候溢出者,

我有创建/更新操作,需要将写入同步到所有副本并刷新它们的索引,因此我使用了一致性:'all' 和 refresh: true 选项。但是,这会导致 NodeJS elasticsearch 客户端总是超时(在 30000 毫秒之后)。需要那么长时间吗?怎么了?

问候

【问题讨论】:

    标签: elasticsearch timeout refresh consistency


    【解决方案1】:

    您对 Elastisearch 提出了很多要求。您的集群中有多少个副本?

    如果您有很多副本,那么将write consistency 转换为all 将需要一些时间。即使是最重要的数据完整性,我觉得quorum 的默认值就足够了。

    了解write consistency的优秀来源

    以上链接的最后一段

    如果您的主数据存储不是弹性搜索,几乎可以肯定 所有的写入级别都是矫枉过正的。性能影响将 可能不值得额外的耐用性保证。作为决赛 点,应该注意的是,在脑裂故障期间,其中一个 由于网络分区,单个集群已分为两个 或重载,写一致性保证将变得毫无意义 原因很明显。

    因此,我认为所有人的一致性级别不会让您免于灾难。

    refresh 设置为true 是多余的,因为您将每毫秒打开和写入这么多段。 ES 几乎是实时的,因为它每秒自动刷新每个分片。

    查看Near Real TimeDoc 的 Elasticsearch 文档。

    从中你会明白很多。

    如果您仍想保留这些设置,则需要将超时从默认值 30 秒大幅增加。

    【讨论】:

    猜你喜欢
    • 2017-08-28
    • 2011-11-08
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多