设为首页 收藏本站
查看: 822|回复: 0

[经验分享] Solr索引数据同步

[复制链接]

尚未签到

发表于 2016-12-16 07:43:17 | 显示全部楼层 |阅读模式
  solr查询量增加后,单服务器承受不了搜索压力是,需要多服务来支撑,Solr1.4后自己提供了复制机制ReplicationHandler。
  ReplicationHandler是个RequestHandler,在solrconfig.xml配置ReplicationHandler即可使用。
  Master配置

Xml代码 DSC0000.gif DSC0001.png DSC0002.gif





  • <requestHandlername="/replication"class="solr.ReplicationHandler">

  • <lstname="master">
  • <!--什么时候出发同步,参数名replicateAfter,取值可以是startup commit optimize -->

  • <strname="replicateAfter">startup</str>

  • <strname="replicateAfter">commit</str>

  • <!--数据备份 参数名backupAfter 同样可以似乎startup commit optimize -->
  • <!-- <str name="backupAfter">optimize</str> -->

  • <!--配置要同步的配置文件 -->

  • <strname="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
  • <!--提交同步时间间隔,默认是10秒,一般不用改动 -->

  • <strname="commitReserveDuration">00:00:10</str>
  • </lst>
  • </requestHandler>



<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<!--什么时候出发同步,参数名replicateAfter,取值可以是startup commit optimize  -->
<str name="replicateAfter">startup</str>
<str name="replicateAfter">commit</str>
<!--数据备份 参数名backupAfter 同样可以似乎startup commit optimize -->
<!-- <str name="backupAfter">optimize</str> -->
<!--配置要同步的配置文件 -->
<str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
<!--提交同步时间间隔,默认是10秒,一般不用改动 -->
<str name="commitReserveDuration">00:00:10</str>
</lst>
</requestHandler>
  Slave配置

Xml代码





  • <requestHandlername="/replication"class="solr.ReplicationHandler">

  • <lstname="slave">

  • <!--主服务的同步地址-->

  • <strname="masterUrl">http://master_host:port/corename/replication</str>

  • <!--同步轮询的时间间隔,是应用还击而定 -->

  • <strname="pollInterval">00:00:20</str>

  • <strname="compression">internal</str>
  • <!--Http相关参数设置-->

  • <strname="httpConnTimeout">5000</str>

  • <strname="httpReadTimeout">10000</str>

  • <!-- 如果主服务设置认证,在此设置登录用户名密码 -->

  • <strname="httpBasicAuthUser">username</str>

  • <strname="httpBasicAuthPassword">password</str>
  • </lst>
  • </requestHandler>



<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="slave">
<!--主服务的同步地址-->
<str name="masterUrl">http://master_host:port/corename/replication</str>  
<!--同步轮询的时间间隔,是应用还击而定 -->
<str name="pollInterval">00:00:20</str>  
<str name="compression">internal</str>
<!--Http相关参数设置-->
<str name="httpConnTimeout">5000</str>
<str name="httpReadTimeout">10000</str>
<!-- 如果主服务设置认证,在此设置登录用户名密码 -->
<str name="httpBasicAuthUser">username</str>
<str name="httpBasicAuthPassword">password</str>
</lst>
</requestHandler>
Solr同步是通过Slave周期性轮询来检查Master的版本,如果Master有新版本,那么就开始同步复制。  1. Slave发出一个filelist命令来收集文件列表。这个命令将返回一系列元数据(size,lastmodified,alias等等)
  2. Slave查看它本地是否有这些文件,然后它会开始下载缺失的文件(使用命令filecontent)。如果连接失败,则下载终止。它将重试5次,如果仍然失败则放弃。
  3. 文件被下载到了一个临时目录。因此,下载中途出错不会影响到slave。
  4. 一个commit命令被ReplicationHandler执行,然后新的索引被加载进来
  solr同步复制就那么简单。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-314854-1-1.html 上篇帖子: Context [/solr] startup failed due to previous errors 下篇帖子: solr StatsComponent(聚合统计)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表