【发布时间】:2015-11-13 22:34:11
【问题描述】:
问候溢出者,
我有创建/更新操作,需要将写入同步到所有副本并刷新它们的索引,因此我使用了一致性:'all' 和 refresh: true 选项。但是,这会导致 NodeJS elasticsearch 客户端总是超时(在 30000 毫秒之后)。需要那么长时间吗?怎么了?
问候
【问题讨论】:
标签: elasticsearch timeout refresh consistency
问候溢出者,
我有创建/更新操作,需要将写入同步到所有副本并刷新它们的索引,因此我使用了一致性:'all' 和 refresh: true 选项。但是,这会导致 NodeJS elasticsearch 客户端总是超时(在 30000 毫秒之后)。需要那么长时间吗?怎么了?
问候
【问题讨论】:
标签: elasticsearch timeout refresh consistency
您对 Elastisearch 提出了很多要求。您的集群中有多少个副本?
如果您有很多副本,那么将write consistency 转换为all 将需要一些时间。即使是最重要的数据完整性,我觉得quorum 的默认值就足够了。
了解write consistency的优秀来源
以上链接的最后一段
如果您的主数据存储不是弹性搜索,几乎可以肯定 所有的写入级别都是矫枉过正的。性能影响将 可能不值得额外的耐用性保证。作为决赛 点,应该注意的是,在脑裂故障期间,其中一个 由于网络分区,单个集群已分为两个 或重载,写一致性保证将变得毫无意义 原因很明显。
因此,我认为所有人的一致性级别不会让您免于灾难。
将refresh 设置为true 是多余的,因为您将每毫秒打开和写入这么多段。 ES 几乎是实时的,因为它每秒自动刷新每个分片。
查看Near Real TimeDoc 的 Elasticsearch 文档。
从中你会明白很多。
如果您仍想保留这些设置,则需要将超时从默认值 30 秒大幅增加。
【讨论】: