欢迎投稿

今日深度:

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

elasticsearch服务节点重启时,是否存在流量漂移,如何优化?,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

www.htsjk.Com true http://www.htsjk.com/Elasticsearch/36658.html NewsArticle elasticsearch服务节点重启时,是否存在流量漂移,如何优化?,elasticsearch节点 (1)节点离开 在elasticsearch集群中,假设NodeA因为种种原因退出集群,在NodeA上的Shard分片情况(ShardA是主分片...
相关文章
    暂无相关文章
评论暂时关闭