主分片平衡--Shard Overallocation--es横向扩展设计

Shard Overallocation

这节讲shard间的平衡问题,先假设你建了一个index

PUT /my_index

{

  "settings": {

    "number_of_shards":   2, 

    "number_of_replicas": 0

  }

}

这个index有两个shard 0个replicas

官方把2 shard放 1 node上(shard replicas node 不懂看readme)

对于你的代码去请求es,其实只能指向index,下层shard是透明的(当然了,否则不叫集群了,感觉老外废话就是多)

我们现在做一个操作:加一个node,(ES集群建立自己baidu) 










可以看到有个shard迁移到了另外一个node中,这样我们就有2个地方存放数据了,而且ES这方面确实厉害,平滑过渡painless,不会影响用户的请求


新建的ES默认5个shard,这个确实够一般的业务存放数据了。

程序员都在想为啥不设置为Shard Splitting呢,你觉得就你聪明吗?作者说了理由:

(1)其实就是在reindex data,但过程会繁重,而且不可控

(2)splitting是非常快的,还是不可控

(3)当你意识到你要splitting的时候其实空间已经不够了


所以还是乖乖reindex吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值