配置分佈式Solr服務器java
參照Solr單機版的配置,配置多臺Solr服務器apache
假設目前存在多臺已經配置好的Solr服務器分別爲服務器
http://127.0.0.1:8080/solr/connection1分佈式
http://127.0.0.1:8081/solr/connection1spa
http://127.0.0.1:8082/solr/connection1xml
目前須要設置8080爲主機,8081,8082爲從機get
修改主節點同步
(1):找到須要設置主庫的solrhome,找到其中須要設置的核心connection1,例如路徑爲\example\solr\collection1it
(2):打開\conf\solrconfig.xmlio
(3):修改節點 替換配置中存在的requestHandler/replication和updateHandler
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<str name="replicateAfter">startup</str>
<str name="replicateAfter">commit</str>
<str name="replicateAfter">optimize</str>
<str name="confFiles">schema.xml</str>
</lst>
</requestHandler>
<updateHandler class="solr.DirectUpdateHandler2">
<autoCommit>
<maxDocs>1</maxDocs>
<maxTime>1000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
</updateHandler>
修改從節點
(1):找到須要設置從庫的solrhome,找到其中須要設置的核心connection1,例如路徑爲\example\solr\collection1
(2):打開\conf\solrconfig.xml
(3):修改節點 替換配置中存在的requestHandler/replication和updateHandler
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="slave">
<str name="masterUrl">http://10.28.175.246:8080/solr/waiter</str>
<str name="pollInterval">00:00:20</str>
</lst>
</requestHandler>
上述操做完成後,一個Solr分佈式就完成了,主庫主要負責接收插入的數據,從庫主要負責查詢數據。
從庫會在按期(pollInterval配置)到主庫進行數據查詢,若主庫數據有修改,從庫會自動進行差別同步。
在項目中引用
<bean id="concurrentUpdateSolrServer" class="org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer">
<constructor-arg value=" http://127.0.0.1:8080/solr/connection1" />
<constructor-arg value="8" />
<constructor-arg value="8" />
</bean>
<bean id="lbHttpSolrServer" class="org.apache.solr.client.solrj.impl.LBHttpSolrServer" >
<constructor-arg>
<array value-type="java.lang.String">
<value>http://127.0.0.1:8081/solr/connection1</value>
<value>http://127.0.0.1:8082/solr/connection1</value>
</array>
</constructor-arg>
</bean>