溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SolrCloud中zookeeper如何使用

發(fā)布時(shí)間:2021-08-05 17:30:39 來源:億速云 閱讀:193 作者:Leah 欄目:云計(jì)算

SolrCloud中zookeeper如何使用,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

solrzookeeper中的結(jié)點(diǎn)

SolrCloud中zookeeper如何使用

 

       1、aliases.json 對(duì)colletion別名,另有妙用(solrcloud的build search分離),以后再寫博客說明。

2、clusterstate.json  重要信息文件。包含了colletion ,shard replica的具體描述信息。

3、live_nodes ,下面都是瞬時(shí)的zk結(jié)點(diǎn),代表當(dāng)前存活的solrcloud中的節(jié)點(diǎn)。

4、overseer, solrcloud中的重要角色。下面存有三個(gè)重要的分布式隊(duì)列,代表待執(zhí)行solrcloud相關(guān)的zookeeper操作的任務(wù)隊(duì)列。collection-queue-work是存放與collection相關(guān)的特辦操作,如createcollection ,reloadcollection,createalias,deletealias ,splitshard 等。

5、queue則存放了所有與collection無(wú)關(guān)的操作,例如deletecore,removecollection,removeshard,leader,createshard,updateshardstate,還有包括節(jié)點(diǎn)的狀態(tài)(down、active、recovering)的變化。

6、queue-work是一個(gè)臨時(shí)隊(duì)列,指正在處理中的消息。操作會(huì)先保存到/overseer/queue,在overseser進(jìn)行處理時(shí),被移到/overseer/queue-work中,處理完后消息之后在從/overseer/queue-work中刪除。如果overseer中途掛了,新選舉的overseer會(huì)選將/overseer/queue-work中的操作執(zhí)行完,再去處理/overseer/queue中的操作。

注意:以上隊(duì)列中存放的所有子結(jié)點(diǎn),都是PERSISTENT_SEQUENTIAL類型的。

7、overseer_elect ,用于overseer的選舉工作

8、colletcion,存放當(dāng)前collection一些簡(jiǎn)單信息(主要信息都在clusterstate.json中)。 下面的leader_elect自然是用于collection中shard中副本集的leader選舉的。

Overseer zk寫流程

在看solrcloud的官方文檔的時(shí)候,幾乎也很少有overseer的這個(gè)角色的說明介紹。相信不少成功配置solrcloud的開發(fā)者,也沒有意識(shí)到這個(gè)角色的存在。

Overseer,顧名思義,是一個(gè)照看全局的角色,做總控工作。體現(xiàn)在代碼與zk的相關(guān)操作中,就是zookeeper中大多的寫操作,是由overseer去處理的,并且維護(hù)好clusterstate.josn與aliases.json這兩個(gè)zk結(jié)點(diǎn)的內(nèi)容。與我們“誰(shuí)創(chuàng)建,誰(shuí)修改”做法不同。由各個(gè)solr node發(fā)起的操作,都會(huì)publish到/overseer結(jié)點(diǎn)下面相應(yīng)的queue中去,再由overseer去些分布式隊(duì)列中去取這些操作信息,做相應(yīng)的zk修改,并將整個(gè)solrcloud中相關(guān)的具體狀態(tài)信息,更新到cluseterstate.json中去,最終會(huì)將個(gè)操作,從queue中刪除,表示完成操作。

以一個(gè)solr node將自身狀態(tài)標(biāo)記為down為例。該node會(huì)將這種“state”operation的相關(guān)信息,publish到/overseer/queue中。由Overseer去從中取得這個(gè)操作,然后將node state為down的信息寫入clusterstate.json。最后刪除queue中的這個(gè)結(jié)點(diǎn)。

當(dāng)然overseer這個(gè)角色,是利用zookeeper在solrcloud中內(nèi)部選舉出來的。

一般的zk讀操作

  Solr將最重要且信息最全面的內(nèi)容都放在了cluseterstate.json中。這樣做減少了,普通solr node需要關(guān)注的zk 結(jié)點(diǎn)數(shù)。除了clusterstate.json,普通的solr node在需要當(dāng)前collection整體狀態(tài)的時(shí)候,還會(huì)獲取zk的/live_nodes中的信息,根據(jù)live_nodes中的信息,得知collection存活的node, 再?gòu)腸lusterstate.json獲得這些node的信息。

 這種處理,其實(shí)也好理解。假如一個(gè)solr node非正常下線,clusterstate.json中不一定會(huì)有變化,但/live_nodes中這個(gè)node對(duì)應(yīng)的zk結(jié)點(diǎn)就消失了(因?yàn)槭撬矔r(shí)的)。

關(guān)于SolrCloud中zookeeper如何使用問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI