天天看點

SolrCloud使用Zookeeper管理叢集的基本流程

第一台Solr伺服器啟動過程:

  1. 啟動第一台zookeeper伺服器,作為叢集狀态資訊的管理者
  2. 将自己這個節點注冊到/node_states/目錄下,同時将自己注冊到/live_nodes/目錄下
  3. 建立/overseer_elect/leader,為後續Overseer節點的選舉做準備,建立一個Overseer
  4. 更新/clusterstate.json目錄下json格式的叢集狀态資訊
  5. 本機從Zookeeper中更新叢集狀态資訊,維持與Zookeeper上的叢集資訊一緻
  6. 上傳本地配置檔案到Zookeeper中,供叢集中其他solr節點使用,後面啟動solr則不會上傳配置檔案,因為都是使用第一台solr服務啟動上傳的配置檔案為準.
  7. 啟動本地的Solr伺服器,Overseer會得知shard中有第一個節點進來,更新shard狀态資訊,并将本機所在節點設定為shard1的leader節點,并向整個叢集釋出最新的叢集狀态資訊。
  8. 本機從Zookeeper中再次更新叢集狀态資訊,第一台solr伺服器啟動完畢。

第二台solr伺服器的啟動過程:

  1. 連接配接到叢集所在的Zookeeper
  2. 将自己這個節點注冊到/node_states/目錄下,同時将自己注冊到/live_nodes/目錄下
  3. 本機從Zookeeper中更新叢集狀态資訊,維持與Zookeeper上的叢集資訊一緻
  4. 從叢集中儲存的配置檔案加載Solr所需要的配置資訊
  5. 啟動本地solr伺服器,将本節點注冊為叢集中的shard,并将本機設定為shard2的Leader節點
  6. 本機從Zookeeper中再次更新叢集狀态資訊,第二台solr伺服器啟動完畢.