写一致性原理和quorum机制

elasticsearch 5.0以上不支持consistency 和 quorum

1.任何一个增删改操作都可以跟上一个参数consistency

PUT /myindex/article/4?consistency=one
{
  "post_date":"2018-05-18",
  "title":"Java",
  "content":"java is the best language",
  "author_id":666
}

可以给该参数指定的值:
one:(primary shard)只要有一个primary shard是活跃的就可以执行
all:(all shard)所有的primary shard和replica shard都是活跃的才能执行
quorum:(default)默认值,大部分shard是活跃的才能执行(例如共有6个shard,至少有3个shard是活跃的才能执行写操作)

2.quorum机制:多数shard都是可以用的
int((primary+number_of_replica)/2)+1

例如:3个primary shard,1个replica
int((3+1)/2)+1=3
至少3个shard是活跃的
注意:可能出现shard不能分配齐全的情况

比如:1个primary shard,1个replica
int((1+1)/2)+1=2
但是如果只有一个节点,因为primary shard和replica shard不能在同一个节点上,所以仍然不能执行写操作

再举例:1个primary shard,3个replica,2个节点
int((1+3)/2)+1=3
最后:当活活跃的shard的个数没有达到要求是,es默认会等待一分钟,如果在等待的期间活跃的shard的个数没有增加,则显示timeout
PUT /index/type/id?timeout=60s

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容