实战: SOLR的分布式部署(复制)CollectionDistribute 快照分发 (一)
网上有很多SOLR的文章,但是大多都是翻译自SOLR的官方WIKI,尤其是对分布式说的较含糊,在部署过程中,出现很多问题,令人摸不着头脑,下面就有些我遇到的情况及解决方案作下描述,希望对大家有用。
SOLR复制模式下分布式应用的基本原理:
SOLR主要通过SHELL脚本与SOLR的相互协调完成快照在主服务器与辅服务器下的同步完成,该脚本位于:SOLR的安装目录: Solr\apps\src\scripts。
首先先讲下参与分发的各个模块的组成:
- snapshooter(MASTER) 快照触发生成脚本
由 主服务器负责被动生成,触发机制为:SOLR的RunExecutableListener(配置通过conf下的solrconfig.xml,然后查 找“postCommit”)监听到客户端COMMIT事件,则调用外部命令:snapshooter(默认配置会有问题),在制定目录生成快照文件(一 组索引数据)
- rsyncd-start,disable,enable (master)RSYNC同步脚本
由主服务器通过初始化人工手动执行,开启RSYNC服务。
由辅服务器通过系统CRON定时执行,官方默认每5分钟执行一次。在此过程中,snappuller通过RSYNC命令将主服务器生成的快照拉回本地机 器,并且通过snapinstaller将快照安装至主索引,并同时通知SOLR初始化IndexReader,至此快照同步至辅服务器完毕。
- snapcleaner (master+slave) 快照清理脚本
后期维护工作通过快照清理脚本完成,主服务器与辅服务器各自安装,通过系统CRON定时执行,官方默认每7天清理一次。