elasticsearch服务节点重启时,是否存在流量漂移,如何优化?

(1)节点离开
在elasticsearch集群中,假设NodeA因为种种原因退出集群,在NodeA上的Shard分片情况(ShardA是主分片,ShardB是某一分片副本)
在存活节点上找到ShardA的副本,将该副本升格为主分片
由于ShardB这一分片副本丢失,所以会重新创建相应的分片副本
在存活的节点中对于分片进行再平衡
这样做的目的是保证每个分片都有足够的副本,可以避免数据丢失。需要注意的是,步骤二和步骤三牵涉到大量的网络I/O操作。
(2)节点返回加入集群
如果离开的节点重新加入集群,elasticsearch为了对数据分片(shard)进行再平衡,会为重新加入的NodeA再次分配数据分片(Shard), 这会再次导致大量的网络I/O操作。
(3)延迟副本的重新分配
如果NodeA在离开前上面存在副本ShardB,重新加入之后还是有副本ShardB,看起来一样,但其实中间已经进行了大量的网络I/O,那么有没有办法延迟副本的重新分配呢,这样会冒丢失数据的可能(如果在NodeA重新加入之前,其它节点也挂了), 但是可以节省相应的网络开销。
延迟副本分配可以通过设置参数 index.unassigned.node_left.delayed_timeout 来实现,该参数动态可调,默认值是1分钟(1m)

PUT /_all/_settings
{
  "settings": {
    "index.unassigned.node_left.delayed_timeout": "5m"
  }
}

上述脚本将副本重新分配延迟到5分钟之后。
官网链接:https://www.elastic.co/guide/en/elasticsearch/reference/2.3/delayed-allocation.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值