主要知识点:
- 横向扩容后shard的自动分配及自动负载均衡
- 扩容极限及超过扩容极限后的处理
- 不同情况下的容错。
1、横向扩容
当扩容时,es会自动进行负载均衡,也就是会自动的分配primary shard 和replica shard 到新增加的node中。从而保证:每个node上有大致相同的shard数量(primary shard 和replica shard 一定是要存放在不同的node中的)此时,每个node有更少的shard,因此每个shard 可以占用这个node更多的资源(IO/CPU/Memory等),因此每个shard性能更好。
2、扩容极限及容错
1.扩容极限是node数量等于shard数量(node=shard)
3台机器的情况,(1)3 primary+3 replica ,容错一台,因为宕机一台后还有两个node上有完整数据。此时有两个primary shard 另一个shard 只有replica shard ,但是数据仍是完整的,如果此时动态修改relica的数量,3 primar+6 replica,此时就可以容错2台宕机,但是每个shard的资源更少。
2.超出扩容极限,假如扩容到9台机器,些时就可以动态修改replica数量,9个shard(3primary,6 replica)
3、总结:
综合起来看,一方面要理解扩容的原理,怎么扩容,怎么提升系统整体吞吐量;另一方面要考虑到系统的容错性,让尽可能多的服务器宕机的情况下保证数据不丢失