第一台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服务器启动完毕.