solr查询量增加后,单服务器承受不了搜索压力是,需要多服务来支撑,Solr1.4后自己提供了复制机制ReplicationHandler。
ReplicationHandler是个RequestHandler,在solrconfig.xml配置ReplicationHandler即可使用。
Master配置
- <requestHandlername="/replication"class="solr.ReplicationHandler">
- <lstname="master">
- <!--什么时候出发同步,参数名replicateAfter,取值可以是startup commit optimize -->
- <strname="replicateAfter">startup</str>
- <strname="replicateAfter">commit</str>
- <!--数据备份 参数名backupAfter 同样可以似乎startup commit optimize -->
- <!-- <str name="backupAfter">optimize</str> -->
- <!--配置要同步的配置文件 -->
- <strname="confFiles">schema.xml,stopwords.txt,elevate.xml</str>
- <!--提交同步时间间隔,默认是10秒,一般不用改动 -->
- <strname="commitReserveDuration">00:00:10</str>
- </lst>
- </requestHandler>
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="master"> <!--什么时候出发同步,参数名replicateAfter,取值可以是startup commit optimize --> <str name="replicateAfter">startup</str> <str name="replicateAfter">commit</str> <!--数据备份 参数名backupAfter 同样可以似乎startup commit optimize --> <!-- <str name="backupAfter">optimize</str> --> <!--配置要同步的配置文件 --> <str name="confFiles">schema.xml,stopwords.txt,elevate.xml</str> <!--提交同步时间间隔,默认是10秒,一般不用改动 --> <str name="commitReserveDuration">00:00:10</str> </lst> </requestHandler>
Slave配置
- <requestHandlername="/replication"class="solr.ReplicationHandler">
- <lstname="slave">
- <!--主服务的同步地址-->
- <strname="masterUrl">http://master_host:port/corename/replication</str>
- <!--同步轮询的时间间隔,是应用还击而定 -->
- <strname="pollInterval">00:00:20</str>
- <strname="compression">internal</str>
- <!--Http相关参数设置-->
- <strname="httpConnTimeout">5000</str>
- <strname="httpReadTimeout">10000</str>
- <!-- 如果主服务设置认证,在此设置登录用户名密码 -->
- <strname="httpBasicAuthUser">username</str>
- <strname="httpBasicAuthPassword">password</str>
- </lst>
- </requestHandler>
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="slave"> <!--主服务的同步地址--> <str name="masterUrl">http://master_host:port/corename/replication</str> <!--同步轮询的时间间隔,是应用还击而定 --> <str name="pollInterval">00:00:20</str> <str name="compression">internal</str> <!--Http相关参数设置--> <str name="httpConnTimeout">5000</str> <str name="httpReadTimeout">10000</str> <!-- 如果主服务设置认证,在此设置登录用户名密码 --> <str name="httpBasicAuthUser">username</str> <str name="httpBasicAuthPassword">password</str> </lst> </requestHandler>Solr同步是通过Slave周期性轮询来检查Master的版本,如果Master有新版本,那么就开始同步复制。
1. Slave发出一个filelist命令来收集文件列表。这个命令将返回一系列元数据(size,lastmodified,alias等等)
2. Slave查看它本地是否有这些文件,然后它会开始下载缺失的文件(使用命令filecontent)。如果连接失败,则下载终止。它将重试5次,如果仍然失败则放弃。
3. 文件被下载到了一个临时目录。因此,下载中途出错不会影响到slave。
4. 一个commit命令被ReplicationHandler执行,然后新的索引被加载进来
solr同步复制就那么简单。
相关推荐
Solr集群安装与配置(一)第11讲 Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之...
使用这些jar包,开发者可以构建一个定制的数据同步程序,根据业务需求定时或实时地同步数据库和Solr索引。确保所有必要的jar包都包含在类路径中,是成功运行同步程序的关键。 总的来说,Solr与数据库的同步是一个...
将HBase的数据同步到Solr,可以实现快速的搜索功能,这对于数据分析和实时查询场景尤其重要。 为了实现HBase到Solr的数据同步,我们可以使用HBase Indexer,这是一个由NGDATA开发的开源项目,它简化了这个过程,...
这个插件使我们能够设置定时任务,定期从数据库中抓取新的或更新的数据并导入到Solr索引中,从而保持索引与数据库的同步。 描述中提到了该插件适用于Solr 7.7.2版本,并且已经包含了账号密码验证功能。这意味着在...
全量导入会将整个数据源的数据导入到Solr索引中,而增量导入则仅导入自上次导入以来发生变更的数据,这在处理大量数据时尤其有用,因为它减少了不必要的资源消耗。 在这个特定的jar包——"solr-dataimportscheduler...
这样,业务层可以通过调用这些接口,实现远程对Solr索引的查询操作,无需关心底层实现的细节。 MySQL作为关系型数据库,负责存储系统的基础数据和元数据。在索引过程中,可能会涉及到对原始数据的存储和查询,MySQL...
Solr提供了一个名为DataImportHandler (DIH) 的组件,可以与数据库进行交互,读取这些变更并将其转化为Solr索引的更新。 - **Update Handler**:Solr提供了多种Update Handler,例如Direct Update Handler和...
在IT行业中,构建高效、实时的...总之,通过集成Dubbo、Solr和RabbitMQ,可以构建一个高效、可扩展的数据同步解决方案,适用于需要实时索引更新的大型分布式系统。这个项目为理解和实践这类系统提供了一个实用的起点。
4. **触发索引更新**:可以通过SOLR的API或Web界面来触发全量或增量数据导入,使SOLR根据MySQL中的最新数据更新索引。 接下来,我们关注到`schema.xml`文件。这是SOLR的核心配置文件,定义了索引的字段类型和字段。...
这个jar包的核心功能是DataImportHandler(DIH),它是一个内置在Solr中的模块,用于将外部数据源(如关系型数据库)的数据导入到Solr索引中。DIH支持全量导入和增量导入,这使得Solr可以保持与数据库的实时同步,...
这将使得目标实例能尽快地与源实例保持数据同步。 总之,Solr全量数据迁移是一项涉及多个步骤的操作,需要谨慎处理,以确保数据的完整性和服务的稳定性。理解并熟练掌握这些步骤对于Solr的运维工作至关重要。
10. **打印同步历史索引数据时的详细日志** - 创建`log4j.properties`文件并指定日志级别,通过命令行指定`--log4j`参数以输出详细日志。 11. **收集application log** - 收集与索引操作相关的日志信息。 ####...
Solr集群安装与配置(一)第11讲 Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之...
总结起来,"solr-dataimportscheduler-1.1.jar" 是一个用于 Apache Solr 的数据导入调度插件,它使得定时、增量地从外部数据源同步数据成为可能,这对于保持 Solr 索引的实时性和准确性具有重要意义。在实际使用中,...
5. **监控和更新**: 一旦数据导入完成,你可以定期运行增量或全量更新,以保持Solr索引与MongoDB数据的同步。MongoDB Importer支持实时或定时的增量导入,确保搜索结果始终是最新的。 6. **优化性能**: 根据数据量...
这些工具可以帮助用户定期从数据库或其他数据源拉取新数据,更新到Solr索引中,确保索引与数据源保持同步。定时更新索引对于那些数据频繁变化的应用场景非常重要,比如电商网站的商品信息、新闻资讯等。 总之,...
Solr集群安装与配置(一)第11讲 Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之...
Solr集群安装与配置(一)第11讲 Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之...
Solr集群安装与配置(一)第11讲 Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之...
Solr集群安装与配置(一)第11讲 Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之...