基于Tomcat的Solr3.5集群部署

一、准备工作
 
1.1 保证SOLR库文件版本相同
 
保证SOLR的lib文件版本,slf4j-log4j12-1.6.1.jar slf4j-jdk14-1.6.1.jar slf4j-api-1.6.1.jar jcl-over-slf4j-1.6.1.jar

1.2 修改TOMCAT配置文件
 
在service.xml的<Host> </Host>中增加如下内容

<Context path="/solr" docBase="/usr/local/tomcat/webapps/solr" crossContext="true">
<Environment name="solr/home" type="java.lang.String" value="/usr/local/tomcat/webapps/solr/home"/>
</Context>

二、主服务器配置
 
SOLR每个CORE需要单独定义复制需要进入每个CORE中修改相关配置我们现有三个CORE分别为 order\product\vehicle
 
    设置主服务器需要进入项目的每个CORE的config\solrconfig.xml增加如下项目:

  <requestHandler name="/replication" class="solr.ReplicationHandler" >

      <lst name="master">

        <str name="replicateAfter">commit</str>

        <str name="replicateAfter">startup</str>

        <str name="replicateAfter">optimize</str>

        <str name="confFiles">schema.xml </str>

        <str name="commitReserveDuration">00:00:10</str>

      </lst>

</requestHandler>

说明:
 
1)replicateAfter可取startup、commit、optimize,表示触发复制的时机。使用中,这三个值都可以配上。
2)backupAfter表示备份时机,如果需要备份,solr会在配置的时机自动生成备份。
3)confFiles表示在复制时需要复制到slave的文件列表。我们的环境只需要schema.xml
4)commitReserveDuration默认是10秒,这个值通常你通常不需要修改,除非你的网络慢到传输5M数据需要10秒以上的时间。
 
三、从服务器配置

<requestHandler name="/replication" class="solr.ReplicationHandler" >

    <lst name="slave">

        <str name="masterUrl">http://192.168.1.252:8080/solr/order/replication</str> 

        <str name="pollInterval">00:00:10</str> 

        <str name="compression">internal</str>

        <str name="httpConnTimeout">5000</str>

        <str name="httpReadTimeout">10000</str>

        <str name="httpBasicAuthUser">username</str>

        <str name="httpBasicAuthPassword">password</str>

    </lst>

</requestHandler>

说明:上面的参数也不需要太多解释,其中pollInterval参数表明slave从master复制数据的频率。如果对实时性要求不高,通常5-10分钟即可,也避免slave的indexsearcher频繁的切换,同时,master的commit频率也可相对保持一致。
 
四、HTTP API
 
solr的ReplicationHandler提供了一系列http命令(参数command),支持的可选值如下:
1)indexversion:slave从master获取最新的索引点信息。
2)filecontent:slave从master下载指定文件的内容。
3)filelist:slave从master获取指定indexversion的索引文件列表(及需要复制的配置文件)。
4)backup:备份索引。如果担心索引有损坏的可能性,可以定期备份索引。
5)fetchindex:手动复制数据,和slave自动复制相当。
6)disablepoll:停止slave的复制。
7)enablepoll:开启slave的复制。
8)abortfetch:终止slave上正在进行的下载文件过程。
9)commits:show当前仍旧保留的IndexCommit信息。
10)details:show slave当前的复制细节信息。
11)enablereplication:启动master对所有slave的复制功能
12)disablereplication:关闭master对所有slave的复制功能

基于Tomcat的Solr3.5集群部署的更多相关文章

  1. 通过 Terracotta实现基于Tomcat的Web应用集群

    [转]通过 Terracotta实现基于Tomcat的Web应用集群 博客分类: 企业应用面临的问题 Java&Socket 开源组件的应用 tomcatweb session集群服务器负载均 ...

  2. 使用Tomcat+Redis来实现集群部署中的Session共享问题

    一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...

  3. Mysql基于Mysql Cluster+MysqlRouter的集群部署方案

    http://note.youdao.com/noteshare?id=a61c4a6ff2b76e5305430eb66eb116e2&sub=4B4B6E8D0E2849F9B0DFB67 ...

  4. SolrCloud-5.2.1 集群部署及测试

    一. 说明 Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了. 部署前的准备工作: 1. 将各主机IP配置为静态IP(保证各主机可以正常通信,为避免 ...

  5. Tomcat部署问题,Tomcat集群部署问题。

    1.服务器崩溃,指的是Tomcat程序崩溃,还是服务器系统崩溃? 答:都有可能. 所以一台服务器上部署多个Tomcat可以防止程序崩溃问题.但不能避免服务器崩溃,要避免服务器崩溃,就要采用服务器集群. ...

  6. 基于nginx的tomcat负载均衡和集群

    要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session,多台TOMCAT服务器即可共享SESSION了. 你可以自己写tomcat的扩展来保存SESSI ...

  7. Nginx+Tomcat集群部署

    为了获取更好的性能,我们常常需要将tomcat进行集群部署.下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞. 应用场景环 ...

  8. 使用Tomcat-redis-session-manager来实现Tomcat集群部署中的Session共享

    一.工作中因为要使用到Tomcat集群部署,此时就涉及到了Session共享问题,主要有三种解决方案: 1.使用数据库来存储Session 2.使用Cookie来存储Session 3.使用Redis ...

  9. 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

    基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)   前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...

随机推荐

  1. MVC4做网站六后台管理:6.1.4管理员列表、添加及删除

    一.管理员列表 1.首先[AdministratorController]中添加返回分部视图的public PartialViewResult Index() /// <summary> ...

  2. 【资源】108个大数据文档PDF开放下载-整理后打包下载

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html        本博客其他.NET开源项目文章目录:h ...

  3. C#:根据银行卡卡号判断银行名称

    原文地址:android 根据银行卡卡号判断银行 原文是 java ,现在将它翻译成 C# ,并对代码重新编排整理,博主是一个今年刚出来的应届毕业生,不足之处请多多包涵. 根据银行卡号判断所属银行,依 ...

  4. iOS开发之窥探UICollectionViewController(五) --一款炫酷的图片浏览组件

    本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectio ...

  5. Connect(); // 2015 简要整理

    去年 Connect(); 2014 Visual Studio Contact(); 直播笔记 对于我个人来说,今年 Connect(); 的三个重要发布: ASP.NET 5 RC1 Entity ...

  6. Android开发之Shape详细解读

    日常开发中,我们会遇到一些Button.Textview...等控件的背景是圆角矩形.圆形...等,和android默认的控件背景矩形不一致,此时shape的作用就体现出来了,我们可以根据shape属 ...

  7. C/C++ char a[ ] 和 char *a 的差别,改变 char *a爆内存错误的原因

    对于一些需要传入参数为 char * temp 指针类的函数: 我们定义一个 char a[10] 或char *a 传进去都是可以的. 但是, 如果该函数是会改变你所传入的参数的值时, 传入 cha ...

  8. MySQL入门02-MySQL二进制版本快速部署

    在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法. 源码安装虽然有着更加灵活和更加优化等诸多优势.但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很 ...

  9. (十四)WebGIS中地图放大缩小的设计和实现

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在上一章中,我们给出了整个工具栏设计的核心,使用命令模式,并 ...

  10. Jackson的简单用法

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1简介 Jackson具有比较高的序列化和反序列化效率,据测试,无论是 ...