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天清理一次。