solrcloud沒有集羣leader的問題

一、問題描述node

    第一步:在擁有3個節點的集羣中,建立一個2個片,每一個片2個replication的collectionrest

    

    這時候,集羣的leader爲32機器(32機器的id值最小)日誌

    第二步:在該collection上作dataimport,每秒1萬條記錄的導入速度(commit)。源碼

    第三步:restart 32機器it

    問題現象:發現集羣沒有leader,zk上無 /overseer_elect/leader nodeio

        

    集羣出現異常,沒法寫入數據,雖然collection顯示正常import

    

二、問題分析集羣

    按照solrcloud集羣選舉理論,在32機器重啓後,32機器的id值變成最大,而30機器的id此時是最小值,那麼30機器成爲集羣leader方法

此時30機器,沒有成爲leaderim

經過查看30機器的日誌及solrcloud選舉的源碼

源碼中,有個選舉類LeaderElector,裏面有個checkIfIamLeader方法,此方法就是「試圖選舉本身成爲leader」

    該方法是先判斷實際是否能夠成爲leader,若是能夠,先刪除原有的leader node,而後建立本身成爲leader的node

    

 

   

     經過查看30的info日誌發現,只執行了delete 原有leader node的操做,而沒有建立「本身成爲leader」的操做

三、解決辦法

重啓編號最小的那臺機器,觸發集羣重選leader

相關文章
相關標籤/搜索