solr学习第四课------solr主从配置索引的主从复制

主题:Solr中索引的主从复制,采用Master/Slave结构
    solr的主从复制可以实现像Mysql复制那样,一个服务器负责写服务,其余多个服务器负责读服务,这样可以避免索引并发读写对索引性能的影响,再一个可以构建大规模的搜索系统,用多个服器来分担系统的读服务。Slave的复制是通过http协议访问Master完成的,就像用浏览器访问一个web页面一样。


要实现复制功能,需要一个写索引的服务器和读索引的服务器,分别为Write_A,Read_B
第一步:测试环境
服务器1(Master)
操作系统:      Linux5.2
IP:            192.168.204.135:9081
JDK:           Sun JDK 1.6
Web服务器:     Apache Tomcat6
Solr版本:      Solr3.6.2

服务器2(Slave)
操作系统:      Linux5.2
IP:            192.168.204.135:9080
JDK:           Sun JDK 1.6
Web服务器:     Apache Tomcat6
Solr版本:      Solr4.4.0,这里建议使用和Master相同的版本,否则会出现莫名的错误。
第二步: 准备工作
在2台服务器上建立如下目录
/home/admin/solr/solr4server
/home/admin/solr/solr4home

/home/admin/solr/solr3server
/home/admin/solr/solr3home

/home/admin/solr/solr3server_slave
/home/admin/solr/solr3home_slave


第三步:配置solr (windows) 并配中文分词 IKAnalyzer
1. 修改主(采用solr3.6.2版本):solrconfig.xml文件(目前设置的同步周期为一分钟,具体可视生产环境的具体环境而定。)
在Master的配置文件中添加一个RequestHandler,RequestHandler是复制在Master端的主要手段,Slave会定期向这个RequestHandler发送请求,并完成索引文件的同步;
Master负责写数据(Write_A)到从服务器中;
replicateAfter说明什么时候进行复制,取值可以是startup, commit, optimize分别是创建索引、提交索引、优化索引之后。每当这些动作执行结束后,Slave就可以从Master上进行复制了;


Write_A 作为Master,solrconfig.xml 找到
  
     
      commit
     
      startup
     
     
     
     
     
      solrconfig_slave.xml:solrconfig.xml,schema.xml,stopwords.txt,elevate.xml
     
      admin
      123456
   


2. 从solr 文件(采用solr4.4.0版本)
Slave负责读数据(Read_B)到从服务器内容。
属性值是一个url,指向了Master服务器上的提供复制功能的requestHandler,
master_host:master服务器的IP或主机名
port:master服务器上部署solr应用的tomcat端口
solr:solr的web应用名称
corename: solr中的core,关于core的概念请参考相关文档。由于本案例中不涉及多个core,所以此处的url中可以去掉这项,也不对core进行过多的说明。
replaction: Master上提供复制的requestHandler名称,也就是requestHandler的name属性的取值。
00:00:20是Slave定期检测Master的时间,格式是HH:mm:ss。这里配置的时间是20秒,因此Slave每个20秒会主动请求一次Master服务器,获得Master服务器上索引文件的状态,比如最后修改时间,文件尺寸等,如果与本机的索引文件不同就进行复制,实现同步。


Read_B 作为Slave,solrconfig.xml 找到
 
     
     
      http://192.168.204.135:9081/solr/replication   
     
      00:00:60
     
      internal
     
      5000
      10000
     
      admin
      123456
   


3.复制的简单原理
master 有新索引时会保存索引文件名列表并已时间排序和标记上次复制时文件的位置,那么再次复制时就从这个位置之后进行复制。(不是太明白,想当然这么理解,如有谁比较熟悉,请留言,不胜感激)
4. 参考URL http://wiki.apache.org/solr/SolrReplication



http://qnalist.com/questions/562975/replication-problem-from-solr-3-6-to-solr-4-0

你可能感兴趣的:(分布式搜索引擎)