问候胜过花朵,
我的创建/更新操作需要将写入同步到所有副本并刷新它们的索引,因此我使用consistency:' all‘和refresh: true选项。但是,这会导致NodeJS elasticsearch客户端始终超时(30000ms之后)。要花那么长时间吗?怎么啦?
问候
发布于 2015-11-14 07:36:50
你对Elastisearch的要求太高了。您的集群中有多少个副本?
如果您有很多副本,那么将write consistency转换为all将需要一些时间。即使数据完整性是最重要的,我觉得quorum的默认值就足够了。
了解write consistency的绝佳源码
以上链接的最后一段
如果您的主数据存储不是elasticsearch,那么几乎可以肯定,所有写入级别都是过度杀伤力。性能影响很可能不值得额外的耐用性保证。作为最后一点,应该注意的是,在拆分大脑故障期间,由于网络分区或过载,单个集群已一分为二,由于明显的原因,写一致性保证将变得毫无意义。
正因为如此,我不认为对所有人都保持一致将会使你免于灾难。
将refresh设置为true太过分了,因为您将在每毫秒打开和写入如此多的段。ES是实时的,因为它每秒自动刷新每个分片。
看看Near Real Time文档的Elasticsearch文档。
你会从中学到很多。
如果您仍然希望继续使用这些设置,则需要将超时时间从默认值30秒大幅增加。
https://stackoverflow.com/questions/33702863
复制相似问题