`
guyunduzai
  • 浏览: 16863 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

solr配置主从同步配置及同步机制

阅读更多

solr主从配置:

主从配置是实现主从服务器之间的数据同步,为了实现的是读写分离,为了方便,我在一台服务器上模拟实现的,我用了一个tomcat服务器,tomcat上面部署了两个war包,一个master和一个slave,具体的solr服务搭建我就不写了,单写如何实现主从配置。

 

       我使用的solr是多核的,我拿一个作为例子啊(用户),主从配置过程中,主服务的索引中配置文件是不需要做任何变化的,但是为了与从的比较,我也贴下配置,主配置文件solrConfig.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<config>
  <luceneMatchVersion>LUCENE_36</luceneMatchVersion>
  <requestDispatcher handleSelect="true" >
    <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
  </requestDispatcher>
  
  <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
  <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" />
  <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
  
  
  <requestHandler name="/replication" class="solr.ReplicationHandler" >  
    <lst name="master">  
     <str name="replicateAfter">startup</str>  
     <str name="replicateAfter">commit</str>    
     <str name="confFiles">schema.xml</str>
    </lst>  
  </requestHandler>
  
  <requestHandler name="/analysis/field" class="solr.FieldAnalysisRequestHandler" />   
  <admin>
    <defaultQuery>solr</defaultQuery>
  </admin>

</config>

 
 从配置文件的solrConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>

<config>
  <luceneMatchVersion>LUCENE_36</luceneMatchVersion>
  <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
  <updateHandler class="solr.DirectUpdateHandler2" />
  <requestDispatcher handleSelect="true" >
    <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
  </requestDispatcher>
  
  <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
  <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" />
  <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
  <requestHandler name="/replication" class="solr.ReplicationHandler">    
     <lst name="slave">  
       <str name="masterUrl">http://127.0.0.1:8983/master/user</str>  
       <str name="pollInterval">00:00:20</str>  
       <str name="compression">internal|external</str>  
       <str name="httpConnTimeout">50000</str>     
       <str name="httpReadTimeout">500000</str>       
     </lst>  
  </requestHandler> 
  
  <requestHandler name="/analysis/field" class="solr.FieldAnalysisRequestHandler" />   
   
  <!-- config for the admin interface --> 
  <admin>
    <defaultQuery>solr</defaultQuery>
  </admin>

</config>

 以上配置表示,当主索引进行提交,更新和启动服务的时候,服务进行主从同步,从主索引http://127.0.0.1:8983/master/user上读取索引文件

 

配置好配置文件后,启动服务器,在solr管理界面可以验证同步情况,输入

http://127.0.0.1:8983/master/#/user/replication

如果配置成功的话会出现如下界面:

 

 

该时间为动态的,每20s会执行同步索引一次,也可以点击replicate now立即执行同步

 

另外,主从同步的机制如下:

1、主服务索引文件进行压缩

2、在从服务上面新建一个目录,将主索引压缩后的数据复制到新的目录上

3、同步结束后,删除老的目录(老的索引)

 

注意:在同步过程中访问的是老的索引

 

我在测试环境上面做了测试,1700多万的数据(2.79G)

其中优化索引时间比同步时间长

 

优化索引大约使用了10分钟

但是同步索引只用了3分钟左右

 

 

 

 

  • 大小: 34 KB
分享到:
评论

相关推荐

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 03-Redis的主从架构(主从从).avi │ 04-主从出现宕机怎么办?.avi │ 05-哨兵.avi │ 06-搭建Redis的集群环境.avi │ 08-插槽的分配和key的关系.avi │ 09-新增节点.avi │ 10-移除集群中的节点.avi │ 11-集群...

    java开源包1

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包11

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包2

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包3

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包6

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包5

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包10

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包4

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包8

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包7

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包9

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    java开源包101

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    Java资源包01

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目

    显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器  Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可...

Global site tag (gtag.js) - Google Analytics