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分钟左右

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 Solr 的身份认证配置,您可以按照以下步骤进行设置: 1. 启用 Solr 的身份认证:在 Solr 的安装目录中,打开 `solr.in.sh`(Linux/MacOS)或 `solr.in.cmd`(Windows)文件,并找到以下行: ``` # SOLR_AUTHENTICATION_OPTS= ``` 取消注释并设置该行为: ``` SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:password123" ``` 其中 "solr" 是用户名,"password123" 是密码。 2. 创建授权用户:在 Solr 的安装目录中执行以下命令以创建授权用户: ``` bin/solr create_user -c <core_name> -p <password> ``` `<core_name>` 是您的 Solr 核心名称,`<password>` 是用户的密码。 3. 配置授权规则:打开 Solr 的 `solr.xml` 配置文件,并在 `<security>` 标签内添加以下内容: ```xml <authentication class="solr.BasicAuthPlugin"> <str name="credentials">solr:password123</str> <str name="realm">Solr Basic Authentication</str> </authentication> <authorization class="solr.RuleBasedAuthorizationPlugin"> <params> <!-- 添加授权规则 --> </params> </authorization> ``` 4. 配置访问控制规则:在 `<authorization>` 标签下添加适当的规则以控制用户的访问权限。例如,可以使用如下规则允许用户具有完全访问权限: ```xml <rule name="allow_all" role="solr-admin"> <user username="solr"/> </rule> ``` 您可以根据需要添加其他规则。 5. 重启 Solr:完成上述配置后,重新启动 Solr 服务以使身份认证生效。 请注意,在配置身份认证之前,建议先进行备份并确保对 Solr 实例有适当的访问权限。此外,也可以使用其他可用的身份认证插件,如 LDAP 或 Kerberos。详细信息可以参考 Solr 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值