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

[经验分享] Solr学习笔记(四)Solr索引复制-示例说明

[复制链接]

尚未签到

发表于 2016-12-15 09:09:20 | 显示全部楼层 |阅读模式
  准备:
  为什么要进行索引复制呢?当有很多个客户并发访问某Solr服务器,这可能会导致Solr服务器崩溃(Solr服务器性能达不到这些客户并发访问的需求),这时就可以考虑通过索引复制,将索引复制到多个服务器上,这就是Solr的索引复制,如下图所示:
DSC0000.jpg 如图:Master Solr 为性能达不到很多客户并发访问的服务器,是需要被索引复制的服务器,Slave instances 为复制了Master Solr上索引的服务器,这样客户端可以访问Master Solr 和 Slave instances中的任意一个,以便降低了服务器性能的要求;

  开始:
  同时开启三台Tomcat服务器,端口号分别为:8080,8888,8983,8080代表Master Solr,8888和8983代表Slave instances ;
  用前面学习笔记(三)中SolrjClient提供的借口向Master Solr(8080)添加数据,然后在Slave instances上测试;
  说明:
  要进行索引复制测试需要做一下配置:
  Master Solr(8080),在solrconfig.xml中添加如下配置:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<str name="replicateAfter">commit</str>
<str name="replicateAfter">optimize</str>
<str name="replicateAfter">startup</str>
<str name="confFiles">schema.xml,stopwords.txt</str>
</lst>
</requestHandler>
  Slave instances(8888,8983)solrconfig.xml中添加如下配置:

<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="slave">
<str name="masterUrl">http://localhost:8080/solr/replication</str>
<str name="pollInterval">00:00:60</str>
</lst>
</requestHandler>
  配置完后启动三台服务器;
  可在控制台点击Replication查看复制页面后台控制页面,如下截图:
  Master Solr(8080): DSC0001.jpg
  Slave instances(8888,8983):
DSC0002.jpg

  如上图,可以通过上面所示Button控制索引的复制,如点击Replicate Now马上开始把Master上的索引复制到自己上,如果Disable Poll 值为disable时开启了自动复制功能,即当你Master上添加索引后马上复制到Slave上,可以单击该Button设他的值为enable;
  向Master Solr(8080)上添加数据(SolrJClient):代码如下

List<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
for (int i = 0; i < 10; i++) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", i);
doc.addField("severity",i);
doc.addField("sLocation","Beijing_" + i);
doc.addField("msg", "kobe bryant" + i);
doc.addField("name", "kylin soong" + i);
docs.add(doc);
}
client.addDocs(docs);
  然后在他的Slave instances(8888,8983)任意一个上查询,你都会查询到上面添加到Master Solr上的数据,以8888为例,查询代码如下:

String url = "http://localhost:8888/solr";
SolrjClient client = new SolrjClient();
client.startSolrServer(url);
List<SolrDocument> lists = client.query("kobe");
System.out.println(lists.size());
for(SolrDocument doc : lists) {
for(Iterator iterator = doc.iterator();iterator.hasNext();) {
Map.Entry<String, Object> entry = (Entry<String, Object>) iterator.next();
System.out.print(entry.getKey() + "=" + entry.getValue() + " ");
//System.out.print(iterator.next() + "   ");
}
System.out.println();
}
  结果:

10
id=0 severity=0 sLocation=Beijing_0 msg=kobe bryant0 name=kylin soong0
id=1 severity=1 sLocation=Beijing_1 msg=kobe bryant1 name=kylin soong1
id=2 severity=2 sLocation=Beijing_2 msg=kobe bryant2 name=kylin soong2
id=3 severity=3 sLocation=Beijing_3 msg=kobe bryant3 name=kylin soong3
id=4 severity=4 sLocation=Beijing_4 msg=kobe bryant4 name=kylin soong4
id=5 severity=5 sLocation=Beijing_5 msg=kobe bryant5 name=kylin soong5
id=6 severity=6 sLocation=Beijing_6 msg=kobe bryant6 name=kylin soong6
id=7 severity=7 sLocation=Beijing_7 msg=kobe bryant7 name=kylin soong7
id=8 severity=8 sLocation=Beijing_8 msg=kobe bryant8 name=kylin soong8
id=9 severity=9 sLocation=Beijing_9 msg=kobe bryant9 name=kylin soong9
  结束!

运维网声明 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-314511-1-1.html 上篇帖子: solr in action翻译- 第四章配置Solr 4.4 下篇帖子: Apache Solr 的新特性
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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