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