solr 之分布式索引库同步,分发
solr在这方面做的很给力啊。在配置文件中已经明确的说明了。
1.如果是主索引服务器(这个服务器最好只负责对主索引库,与数据库进行数据的同步)。
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<!--当执行什么操作的时候才同步索引服务器-->
<str name="replicateAfter">commit</str>
<str name="replicateAfter">startup</str>
<!--同步的文件-->
<str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
<!--每隔多少时间同步-->
<str name="commitReserveDuration">00:00:60</str>
<!--用户名密码-->
<str name="httpBasicAuthUser">238</str>
<str name="httpBasicAuthPassword">238</str>
</lst>
</requestHandler>
2.如果是从索引服务器(这些服务器负责)
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="slave">
<str name="masterUrl">http://localhost:port/solr/corename/replication</str>
<str name="pollInterval">00:05:00</str>
<str name="compression">internal</str>
<str name="httpConnTimeout">5000</str>
<str name="httpReadTimeout">10000</str>
<str name="httpBasicAuthUser">238</str>
<str name="httpBasicAuthPassword">238</str>
</lst>
</requestHandler>
这样就实现了每隔一段时间索引库之间的同步。一般主索引服务器只做数据库更新操作,而从服务器做索引查询。