• 实战: SOLR的分布式部署(复制)CollectionDistribute 快照分发 (精简版)


    SOLR复制模式,是一种在分布式环境下用于同步主从服务器的一种实现方式,因之前提到的基于rsync的SOLR不同方式部署成本过高,被SOLR1.4版本所替换,取而代之的就是基于HTTP协议的索引文件传输机制,该方式部署简单,只需配置一个文件即可。

    以下讲解具体操作步骤:

         步骤分主服务器和从服务器,允许有多个从服务器,即从服务器的配置一样。

    主服务器:

          在solrConfig.xml中,找到以下行:

        <requestHandler name="/replication" class="solr.ReplicationHandler" >

    1. <requestHandler name="/replication" class="solr.ReplicationHandler" >  
    2.     <lst name="master">  
    3.         <str name="replicateAfter">commit</str>  
    4.   
    5.         <str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>  
    6.          
    7.         <str name="commitReserveDuration">00:05:00</str>  
    8.         <str name="httpBasicAuthUser">123</str>  
    9.         <str name="httpBasicAuthPassword">123</str>  
    10.   
    11.   
    12.     </lst>  
    13. </requestHandler>  

    说明:

    • replicateAfter : SOLR会自行在以下操作行为发生后执行复制: 'commit', 'startup' 'optimize',这里我们选择commit , 即SOLR每一次接受到commit请求后,会执行复制策略。
    • confFiles : 待分发的配置文件,solr 也会将主服务器上的字段配置文件:schema.xml和stopwords.txt,固排文件: elevate.xml同步到辅服务器上。
    • commitReserveDuration: 每次commit之后,保留增量索引的周期时间,这里设置为5分钟。

    从服务器

     

     

    1. <requestHandler name="/replication" class="solr.ReplicationHandler" >  
    2.     <lst name="slave">  
    3.   
    4.         <str name="masterUrl">http://localhost:port/solr/corename/replication</str>    
    5.   
    6.         <str name="pollInterval">00:05:00</str>    
    7.           
    8.         <str name="compression">internal</str>  
    9.          
    10.         <str name="httpConnTimeout">5000</str>  
    11.         <str name="httpReadTimeout">10000</str>  
    12.   
    13.   
    14.         <str name="httpBasicAuthUser">123</str>  
    15.         <str name="httpBasicAuthPassword">123</str>  
    16.   
    17.      </lst>  
    18. </requestHandler>  

     说明:

    • masterUrl : 主服务器同步URL地址
    • pollInterval:从服务器同步间隔,即每隔多长时间同步一次主服务器
    • httpConnTimeout:设置连接超时(单位:毫秒)
    • httpReadTimeout:如果设置同步索引文件过大,则应适当提高此值。(单位:毫秒)
    • httpBasicAuthUser:验证用户名,需要和主服务器一致
    • httpBasicAuthPassword:验证密码,需和主服务器一致
    • compression:external or internal 使用SOLR自己的压缩算法或应用容器的

        区别: 内部算法会大大提高同步成本,原话: USE THIS ONLY IF YOUR BANDWIDTH IS LOW . THIS CAN ACTUALLY SLOWDOWN REPLICATION IN A LAN。

        因此建议使用外部方式即: external .

        同时需要配置外部应用容器: 以TOMCAT为例:

     

    1. <Connector compression="on"   
    2. compressableMimeType="text/html,text/xml,text/plain"   
    3. compressionMinSize="2048"/>  

     

    最后保存,重启SOLR即可。

  • 相关阅读:
    docker in docker
    docker社区的geodata/gdal镜像dockerfile分析
    howto:在构建基于debian的docker基础镜像时,更换国内包源
    使用Visual Studio 2017构建.Net Core的Docker镜像
    步骤:asp.net core中使用identifyserver4颁发令牌
    部署:阿里云ECS部署Docker CE
    问题:调用 ASP.Net Core WebAPI的HTTP POST方法时,从 [FromBody] 中读取的 MongoDB GeoJsonObjectModel成员总是null
    《.NET 微服务:适用于容器化 .NET 应用的体系结构》关键结论
    SQL数据库注入防范 ASP.NET Globle警告
    数据库中的恶意字符批处理
  • 原文地址:https://www.cnblogs.com/wycg1984/p/1690258.html
Copyright © 2020-2023  润新知