共计 1759 个字符,预计需要花费 5 分钟才能阅读完成。
今天在两台不同的测试服务器上搭建了 solr4.6 的服务器。验证两台 solr 启动正常之后,参照 solr 的 wiki 的主从配置方案进行主从配置,这是 solr 的 wiki 上给出的主从同步方案:http://wiki.apache.org/solr/SolrReplication
solr 的主从同步是按 core 进行配置的,每个 core 的 solrconfig.xml 都需要进行主从的配置。
主节点的 core 下面的 solrconfig.xml 的配置:
<requestHandler name=”/replication” class=”solr.ReplicationHandler” >
<lst name=”master”>
<str name=”replicateAfter”>commit</str>
<str name=”replicateAfter”>startup</str>
<str name=”confFiles”>schema.xml</str>
</lst>
</requestHandler>
这个配置的意思是,一旦服务器重启,或者有数据 commit 的时候,就会进行同步。
从节点的 core 下面的 solrconfig.xml 的配置:
<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>
配置的意思是说,轮训拉取主节点更新日志的时间是 20 秒,拉取的地址是 http://10.28.175.246:8080/solr,同步的 core 是 waiter。
重启两台 solr。现在进行主从同步的验证。
在主节点上通过页面进行添加数据:
问题出现了,通过页面上添加的数据,无法同步到从节点!在页面上添加了多条数据,都未同步到从节点。只有当主节点重启的时候,从节点才有数据过来。
查各种配置问题,查网上各种资料,不得其解!
于是,我改用代码的方式在主节点提交数据,测试了增加数据和删除数据,并且在这些代码之后,调用了 commit() 方法。然后发现主从同步很正常!此时一把鼻涕一把泪。代码调用正常我就放心了。
初步判断用 solr4.6 管理页面添加的数据,solr 服务器本身没有调用 commit() 方法。我只能说 solr 的管理界面很坑爹。
Solr 的详细介绍 :请点这里
Solr 的下载地址 :请点这里
相关阅读:
Solr3.6.1 在 Tomcat6 下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm
基于 Tomcat 的 Solr3.5 集群部署 http://www.linuxidc.com/Linux/2012-12/75297.htm
在 Linux 上使用 Nginx 为 Solr 集群做负载均衡 http://www.linuxidc.com/Linux/2012-12/75257.htm
Linux 下安装使用 Solr http://www.linuxidc.com/Linux/2012-10/72029.htm
在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm
Solr 实现 Low Level 查询解析(QParser)http://www.linuxidc.com/Linux/2012-05/59755.htm
基于 Solr 3.5 搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm
Solr 3.5 开发应用教程 PDF 高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm
Solr 4.0 部署实例教程 http://www.linuxidc.com/Linux/2013-10/91041.htm