• 基于Tomcat的Solr3.5集群部署


    基于Tomcat的Solr3.5集群部署

    一、准备工作
     
    1.1 保证SOLR库文件版本相同
     
    保证SOLR的lib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6.1.jar slf4j-api-1.6.1.jar jcl-over-slf4j-1.6.1.jar

    1.2 修改TOMCAT配置文件
     
    在service.xml的<Host> </Host>中增加如下内容

    <Context path="/solr" docBase="/usr/local/tomcat/webapps/solr" crossContext="true">
    <Environment name="solr/home" type="java.lang.String" value="/usr/local/tomcat/webapps/solr/home"/>
    </Context>

    二、主服务器配置
     
    SOLR每个CORE需要单独定义复制需要进入每个CORE中修改相关配置我们现有三个CORE分别为 orderproductvehicle
     
        设置主服务器需要进入项目的每个CORE的configsolrconfig.xml增加如下项目:

     
      <requestHandler name="/replication" class="solr.ReplicationHandler" >
     
          <lst name="master">
     
            <str name="replicateAfter">commit</str>
     
            <str name="replicateAfter">startup</str>
     
            <str name="replicateAfter">optimize</str>
     
            <str name="confFiles">schema.xml </str>
     
            <str name="commitReserveDuration">00:00:10</str>
     
          </lst>
     
    </requestHandler>

    说明:
     
    1)replicateAfter可取startup、commit、optimize,表示触发复制的时机。使用中,这三个值都可以配上。
    2)backupAfter表示备份时机,如果需要备份,solr会在配置的时机自动生成备份。
    3)confFiles表示在复制时需要复制到slave的文件列表。我们的环境只需要schema.xml
    4)commitReserveDuration默认是10秒,这个值通常你通常不需要修改,除非你的网络慢到传输5M数据需要10秒以上的时间。
     
    三、从服务器配置
     

    <requestHandler name="/replication" class="solr.ReplicationHandler" >
     
        <lst name="slave">
     
            <str name="masterUrl">http://192.168.1.252:8080/solr/order/replication</str> 
    
            <str name="pollInterval">00:00:10</str> 
    
            <str name="compression">internal</str>
     
            <str name="httpConnTimeout">5000</str>
     
            <str name="httpReadTimeout">10000</str>
     
            <str name="httpBasicAuthUser">username</str>
     
            <str name="httpBasicAuthPassword">password</str>
     
        </lst>
     
    </requestHandler>

     
    说明:上面的参数也不需要太多解释,其中pollInterval参数表明slave从master复制数据的频率。如果对实时性要求不高,通常5-10分钟即可,也避免slave的indexsearcher频繁的切换,同时,master的commit频率也可相对保持一致。
     
    四、HTTP API
     
    solr的ReplicationHandler提供了一系列http命令(参数command),支持的可选值如下:
    1)indexversion:slave从master获取最新的索引点信息。
    2)filecontent:slave从master下载指定文件的内容。
    3)filelist:slave从master获取指定indexversion的索引文件列表(及需要复制的配置文件)。
    4)backup:备份索引。如果担心索引有损坏的可能性,可以定期备份索引。
    5)fetchindex:手动复制数据,和slave自动复制相当。
    6)disablepoll:停止slave的复制。
    7)enablepoll:开启slave的复制。
    8)abortfetch:终止slave上正在进行的下载文件过程。
    9)commits:show当前仍旧保留的IndexCommit信息。
    10)details:show slave当前的复制细节信息。
    11)enablereplication:启动master对所有slave的复制功能
    12)disablereplication:关闭master对所有slave的复制功能

  • 相关阅读:
    第四天 PYTHON 函数
    第四天 PYTHON 字符串格式化
    第四天 PYTHON 集合
    Linux使用sshfs挂载远程目录到本地
    linux通过安装包安装nginx和jdk
    使用ajax提交form表单,包括ajax文件上传
    Linux下mysql出错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    数据库连接池
    一台机器上安装两个tomcat
    mysql优化
  • 原文地址:https://www.cnblogs.com/chinway/p/6187271.html
Copyright © 2020-2023  润新知