搞定了一切的一切以後下一步就是正式使用了,可是以前介紹的都是在單臺服務器上進行的部署,若是在生產環境出現了單臺故障怎麼辦呢?提供穩定性和性能的最直觀的方式就是集羣,solr官方提供了cloud的集羣方式java
附上:linux
喵了個咪的博客:http://w-blog.cnapache
Solr官網:http://lucene.apache.org/solr/vim
PS:8.0.0版本已經發布,本文使用此時較爲穩定的7.7.1版本centos
SolrCloud是基於Solr和Zookeeper的分佈式搜索方案。它的主要思想是使用Zookeeper做爲SolrCloud集羣的配置信息中心,統一管理solrcloud的配置,好比solrconfig.xml和schema.xml。tomcat
SolrCloud(solr集羣)是Solr提供的分佈式搜索方案,一下場景可以比較好的使用SolrCloud服務器
Solrcloud特色功能:併發
Solrcloud的結構: solrcloud爲了下降單機的處理壓力,須要由多臺服務器共同來完成索引和搜索任務。實現的思路是將索引數據進行Shard分片,每一個分片由多臺服務器共同完成,當一個索引或搜索請求過來時會分別從不一樣的Shard的服務器中操做索引。solrcloud是基於solr和zookeeper部署,zookeeper是一個集羣管理軟件,solrcloud須要由多臺solr服務器組成,而後由zookeeper來進行協調管理。app
物理結構:負載均衡
準備三臺centos 7服務器 , 而且對主機名進行改寫
hostname solr-1 hostname solr-2 hostname solr-3
修改三臺機器hosts文件經過hostname能夠互相訪問,使用ping命令驗證能夠互相通信
> vim /etc/hosts 172.16.2.75 solr-1 172.16.2.74 solr-2 172.16.2.72 solr-3
安裝JAVA,能夠自行安裝或oneinstack一鍵命令安裝,這裏安裝了java和tomcat
> wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --tomcat_option 2 --jdk_option 2 --reboot
> cd /app/install/ > wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz > tar -zxvf zookeeper-3.4.13.tar.gz > mv zookeeper-3.4.13 /usr/local/
修改配置文件
> cd /usr/local/zookeeper-3.4.13/conf/ > cp zoo_sample.cfg zoo.cfg > vim zoo.cfg tickTime=2000 dataDir=/usr/local/zookeeper-3.4.13/data clientPort=2181 initLimit=10 syncLimit=5 server.1=solr-1:2888:3888 server.2=solr-2:2888:3888 server.3=solr-3:2888:3888
全部節點修改環境變量
> vim /etc/profile # zookeeper export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.13 export PATH=$ZOOKEEPER_HOME/bin:$PATH > source /etc/profile
將zookeeper目錄複製到其餘節點上
> scp -r /usr/local/zookeeper-3.4.13/ root@solr-2:/usr/local/zookeeper-3.4.13 > scp -r /usr/local/zookeeper-3.4.13/ root@solr-3:/usr/local/zookeeper-3.4.13
添加myid文件(每節點都須要)
> cd /usr/local/zookeeper-3.4.13 > mkdir data > echo "1" > data/myid
注意,每一個節點myid文件要不一致
啓動並測試
# 在三臺機器上分別執行 > zkServer.sh start # 查看狀態 [root@solr-1 zookeeper-3.4.13]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: follower [root@solr-2 zookeeper-3.4.13]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: leader [root@solr-3 zookeeper-3.4.13]# zkServer.sh status ZooKeeper JMX enabled by default Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg Mode: follower