solr的复制功能

参考朋友chenlb的文章:http://www.iteye.com/topic/211807,谢谢!

    solr
的复制功能可以把创建索引和search分离开来,可以像一台主服务器发送http请求创建索引,创建完了,利用linux crontab定时功能,实现向多台索引服务器的replicate。实现索引的同步。
要在solr里配置索引段位2个,这样每次都是事复制最新新增加的索引过去,而不是全部。索引复合文件配置设置为false

    solr
的分发是用rsync的。
   
快照与分发过程:

1.snapshooter
命令在主服务器产生快照。一般在commitoptimize之后被solr调用。

2.snappuller
命令在从服务器运行,所做的事是从主服务器拉最新的快照。 用rsyncdaemon模式来运行可以获得更好的性能与更底的CPU利用率。

3.snapinstaller
命令在从服务器运行,当从服务器从主服务器拉完快照后才执行。它会通知本地Solr服务器打开一个新的index reader,然后预热这个新index reader的缓存,此时有请求,原来的index reader继续为这此请求服务。一但预热完成,Solr 启用新的index reader,旧的被消亡。

配置如下:

1.
安装好jdktomcatsolr。主服务器ip为:10.0.8.9,索引服务器为10.0.8.5,两机器要实现ssh无密码交互。
2.
配置Scripts文件里记录。放在solrHome/conf/scripts.conf文件里。

	//主服务器上的配置  
	user=root  
	solr_hostname=10.0.8.9  
	solr_port=8080  
	rsyncd_port=18983  
	data_dir=/data1/server  
	webapp_name=solr  
	master_host=10.0.8.9  
	master_data_dir=/data1/server  
	master_status_dir=/data1/solrLog 
  //索引服务器上的配置
	user=root  
	solr_hostname=10.0.8.5  
	solr_port=8080  
	rsyncd_port=18983  
	data_dir=/data1/slave/  
	webapp_name=solr  
	master_host=10.0.8.9  
	master_data_dir=/data1/server  
	master_status_dir=/data1/solrLog

 3.配置好后,分别启动tomcat,加载solr
4.
在主服务器上启用且启动rsync

./rsyncd-enable -u root -v  

./rsyncd-start -u root -v  

 

//此时用netstat -tnlp 查看端口号,发现18933端口已经启动 

5. 向主服务器里添加几个Document,创建索引。
6.
在主服务器上产生快照
./snapshooter -u root -v

7.在搜索服务器上下拉快照,安装快照:

	./snappuller-enable -u root -v  
	./snappuller -u root -v  
	./snapinstaller -u root -v  

8.可以再2台机器上同时搜索,现在数据应都是相同的。

你可能感兴趣的:(jdk,tomcat,linux,ssh,Solr)