06-从分片--Replica Shards--es横向扩展设计

来源:互联网 发布:金盛集团网络登录平台 编辑:程序博客网 时间:2024/06/05 10:19

直到现在我们一直都在说shard的事情,不是还有replicas吗?现在开始讨论,replicas的作用是提高可用性,也就是做数据备份,防止丢失,如果有个shard挂掉了,它的replica就会顶替他的位置。

在index过程中,replica和shard做了基本一样的事情,新文档进来先index进入shard,然后该shard的replica自动把数据备份到自己的索引中,记住:增加replicas的数量对于es cluster扩容无任何作用!

除了提高可用性,replicas的另外一个重要作用就是可以供读请求访问,这可是非常重要的功能!!!如果你的业务情景是读多写少(大部分都这样的业务情况)那这个东西可以大大的提高读的性能(我自己测试过确实是这样的),但前提要求是你得加node,,,

上面的例子里面我们现在加入1 replica,

PUT /my_index/_settings

{

  "number_of_replicas": 1

}

图是这样的 

采用replicas进行负载均衡

请求表现永远决定于最慢的node(短板理论),如果我们现在有3个node,必然会发生2个node各1个分片,另外一个node必然2个分片(2*2),这样的设计不好为了平衡可以再加一组replicas也就是2 *3 /2 = 3,每个node3个分片

PUT /my_index/_settings

{

  "number_of_replicas": 2










!!!好多人都有这个疑问:

有的node放的shard,有的放的replicas,这样对系统有影响吗?shard和replica消耗还有性能表现相同吗?作者回答了,他们扮演着不同的角色但干着同样的事情,没必要必须把primary 和replicas平衡开来的,所以别担心来。。。


github地址:https://github.com/whybangbang/Elasticsearch---The-Definitive-Guide-

0 0
原创粉丝点击