日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数

發(fā)布時(shí)間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

  • 概述
  • 集群重啟時(shí)的無(wú)意義shard重分配問(wèn)題
  • shard recovery配置


概述

繼續(xù)跟中華石杉老師學(xué)習(xí)ES,第66篇

課程地址: https://www.roncoo.com/view/55


集群重啟時(shí)的無(wú)意義shard重分配問(wèn)題

在集群重啟的時(shí)候,有一些配置會(huì)影響shard恢復(fù)的過(guò)程。

首先,我們需要理解默認(rèn)配置下,shard恢復(fù)過(guò)程會(huì)發(fā)生什么事情。

如果我們有10個(gè)node,每個(gè)node都有一個(gè)shard,可能是primary shard或者replica shard,你有一個(gè)index,有5個(gè)primary shard,每個(gè)primary shard有一個(gè)replica shard。

如果我們將整個(gè)集群關(guān)閉了進(jìn)行一些維護(hù)性的操作,比如給機(jī)器安裝新的磁盤(pán)之類(lèi)的事情。當(dāng)我們重啟集群的時(shí)候,肯定節(jié)點(diǎn)是一個(gè)接一個(gè)的啟動(dòng)的,可能會(huì)出現(xiàn)5個(gè)節(jié)點(diǎn)先啟動(dòng)了,然后剩下5個(gè)節(jié)點(diǎn)還沒(méi)啟動(dòng)。

也許是因?yàn)槭O碌?個(gè)節(jié)點(diǎn)沒(méi)來(lái)得及啟動(dòng),或者是因?yàn)橐恍┰虻R了,總之不管是什么原因,就是現(xiàn)在只有5個(gè)節(jié)點(diǎn)是在線(xiàn)的。這5個(gè)節(jié)點(diǎn)會(huì)通過(guò)gossip協(xié)議互相通信,選舉出一個(gè)master,然后組成一個(gè)集群。他們會(huì)發(fā)現(xiàn)數(shù)據(jù)沒(méi)有被均勻的分布,因?yàn)橛?個(gè)節(jié)點(diǎn)沒(méi)有啟動(dòng),那么那5個(gè)節(jié)點(diǎn)上的shard就是不可用的,集群中就少了一半的shard。此時(shí)在線(xiàn)的5個(gè)node就會(huì)將部分replica shard提升為primary shard,同時(shí)為每個(gè)primary shard復(fù)制足夠的replica shard。

最后,可能剩下的5個(gè)節(jié)點(diǎn)加入了集群。但是這些節(jié)點(diǎn)發(fā)現(xiàn)本來(lái)是他們持有的shard已經(jīng)被重新復(fù)制并且放在之前的5個(gè)node之中了,此時(shí)他們就會(huì)刪除自己本地的數(shù)據(jù)。然后集群又會(huì)開(kāi)始進(jìn)行shard的rebalance操作,將最早啟動(dòng)的5個(gè)node上的shard均勻分布到后來(lái)啟動(dòng)的5個(gè)node上去。

在這個(gè)過(guò)程中,這些shard重新復(fù)制,移動(dòng),刪除,再次移動(dòng)的過(guò)程,會(huì)大量的耗費(fèi)網(wǎng)絡(luò)和磁盤(pán)資源。對(duì)于數(shù)據(jù)量龐大的集群來(lái)說(shuō),可能導(dǎo)致每次集群重啟時(shí),都有TB級(jí)別的數(shù)據(jù)無(wú)端移動(dòng),可能導(dǎo)致集群?jiǎn)?dòng)會(huì)耗費(fèi)很長(zhǎng)時(shí)間。但是如果所有的節(jié)點(diǎn)都可以等待整個(gè)集群中的所有節(jié)點(diǎn)都完全上線(xiàn)之后,所有的數(shù)據(jù)都有了以后,再?zèng)Q定是否要復(fù)制和移動(dòng)shard,情況就會(huì)好很多。


shard recovery配置

所以現(xiàn)在問(wèn)題我們已經(jīng)知道了,那么我們就可以配置一些設(shè)置來(lái)解決這個(gè)問(wèn)題。

首先我們需要設(shè)置一個(gè)參數(shù),gateway.recover_after_nodes: 8。

這個(gè)參數(shù)可以讓es直到有足夠的node都上線(xiàn)之后,再開(kāi)始shard recovery的過(guò)程。所以這個(gè)參數(shù)是跟具體的集群相關(guān)的,要根據(jù)我們的集群中節(jié)點(diǎn)的數(shù)量來(lái)決定。

此外,還應(yīng)該設(shè)置一個(gè)集群中至少要有多少個(gè)node,等待那些node的時(shí)間:gateway.expected_nodes: 10,gateway.recover_after_time: 5m。

經(jīng)過(guò)上面的配置之后,es集群的行為會(huì)變成下面這樣,等待至少8個(gè)節(jié)點(diǎn)在線(xiàn),然后等待最多5分鐘,或者10個(gè)節(jié)點(diǎn)都在線(xiàn),開(kāi)始shard recovery的過(guò)程

這樣就可以避免少數(shù)node啟動(dòng)時(shí),就立即開(kāi)始shard recovery,消耗大量的網(wǎng)絡(luò)和磁盤(pán)資源,甚至可以將shard recovery過(guò)程從數(shù)小時(shí)縮短為數(shù)分鐘。

總結(jié)

以上是生活随笔為你收集整理的白话Elasticsearch66-针对集群重启时的shard恢复耗时过长问题定制的重要参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。