为了应对访问量打的时候,单台机器不能出现访问慢的问题,搭建集群来解决问题。solr集群需要用到solr+zookeeper。
完整的架构图:
1、需要先搭建zookeeper集群,可以查看另外一篇文章知道zookeeper集群的搭建。
2、搭建solr集群的时候需要提前准备四个tomcat,放在solrCloud目录下,这里搭建的是伪分布式。分别修改tomcat的端口号为:8001~8004。
3、向tomcat下分别部署solr,为了简便可以把单机版的solr工程分别拷贝到每一个tomcat目录下。
4、为每一个solr实例创建一个solrhome,solrhome统一放在solrHome目录下,分别起名为solrhome1~4,为每一个solr工程关联一个solrhome实例。修改对应的web.xml信息。
5、修改每个solrhome下的solr.xml文件,修改对应的host、hostPort属性。分别对应ip及端口号。
6、配置文件上传到zookeeper集群,需要使用解压缩solr目录下的zkcli.sh命令上传配置文件。上传的时候需要把zookeeper启动。命令为:./zkcli.sh -zkhost 129.204.6.53:2181,129.204.6.53:2182,129.204.6.53:2183 -cmd upconfig -confdir /usr/local/solrCloud/solrHome/solrhome2/collection1/conf -confname myconf
第一粗线是zookeeper集群的访问路径,第二个是solrhome集群下面的conf配置文件,随机上传一个就可以啦!
7、进入zookeeper集群目录下查看是否上传成功。
8、告诉solr实例zookeeper的位置,需要在tomcat的bin目录下的catalina.sh添加,每个节点都需要添加
JAVA_OPTS="-DzkHost=129.204.6.53:2181,129.204.6.53:2182,129.204.6.53:2183"
9、启动每一个solr实例。然后在浏览器里面测试是否成功。
10、集群分片,一共有四个节点,一个主节点。将集群分为两片,每片两个副本,看到success代表成功。
11、删除不用collection1
http://129.204.6.51:8001/solr/admin/collections?action=DELETE&name=collection1
12、查看最终的结果。