- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据elasticsearch文档,write_consistency level quorum的规则是:
法定人数(>副本/2+1)
使用 ES 0.19.10,在具有 16 个分片/3 个副本的设置中,我们将得到16 个主要分片48个副本
运行 2 个节点,我们将有 16(主)+ 16(副本)= 32 个事件分片。
要满足法定人数规则,法定人数 > 48/2 + 1 = 25 个事件分片。
现在,测试证明不是这样,在我们有 3 个节点运行之前,不满足 write_consistency 级别(写操作超时)。这是有道理的,因为在这个设置中我们可以在每组 2 个节点之间得到一个裂脑,但我不太明白这个规则应该如何工作?我在这里使用了错误的数字吗?
最佳答案
主分片数实际上并不重要,所以我将用 N 替换它。
如果你有一个包含 N 个分片和 2 个副本的索引,则复制组中有 3 个分片。这意味着法定人数是两个:主要的加上一个副本。需要两个active shard,通常是两台active机器,才能满足写一致性参数
具有 N 个分片和 3 个副本的索引在复制组中有四个分片(主 + 3 个副本),因此法定人数为三。
具有 N 个分片和 1 个副本的索引是一种特殊情况,因为您不可能真正拥有只有两个分片的法定人数。只有一个副本,Elasticsearch 只需要一个事件分片(例如主分片),因此 quorum
设置与此特定安排的 one
设置相同。
一些注意事项:
0.19 真的很老了,你绝对应该积极升级。我什至无法计算自该版本以来添加了多少错误修复和性能改进:)
写入一致性只是一种网关检查。在执行索引请求之前,节点将进行 straw-poll 以查看是否满足 write_consistency。如果是,它会尝试执行索引并推送复制。这并不能保证副本会成功……它们很容易失败,您会在响应中看到它。如果不满足一致性设置,它只是一种停止索引过程的机制。
具有两个节点的“完全复制”设置是 1 个主分片 + 1 个副本。每个节点都有一套完整的数据。没有理由拥有更多副本,因为 ES 拒绝将相同数据的副本放在同一台机器上(没有意义,无助于 HA)。无法索引只是写入一致性的副作用,但它指出了您的设置存在更大的问题:)
关于elasticsearch - 理解Elasticsearch的write_consistency和quorum规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17212867/
我是一名优秀的程序员,十分优秀!