solrcloud的分布式集群方案

2024-03-18 19:38

本文主要是介绍solrcloud的分布式集群方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分布式环境下,由于高并发的问题,通常我们需要部署多台服务器来负载均衡,从而避免,单点访问的热点问题,或者因负载过高而造成服务器瘫痪的问题等等。

solr4.x之后推出了solrcloud的分布式集群方案,与4.x之前的Master/Slave集群模式,架构上发生了重大变化,solrcloud不仅仅解决了,高并发的负载均衡问题,也解决了海量数据的检索性能问题,对一份巨大的索引,采用分而治之的方法索引到多个独立的节点上,但是这样并不代表,4.x之前的Master/Slave架构就被淘汰出局了,其实solrcloud里面也是综合运用了主从的方式,来解决并发的问题。

如果数据量不是很大的情况下,没必要采用solrcloud方案,但这时候,又需要解决高并发问题,或者服务器单点故障问题怎么办? 
答案还是采取经典的主从架构模式来解决,下面散仙来看下,在solr里面,具体的配置

第一,是在Master里面的配置如下:


Xml代码 复制代码  收藏代码
  1.  <requestHandler name="/replication" class="solr.ReplicationHandler" >  
  2.  <lst name="master">  
  3.    <!-- master上有数据写入时,触发commit操作,slave就会发起一次同步请求-->  
  4.    <str name="replicateAfter">commit</str>  
  5.    <!-- startup参数不影响同步请求-->  
  6. <str name="replicateAfter">startup</str>  
  7. <!-- master触发optimize操作,slave就会发起一次同步请求-->  
  8.    <str name="replicateAfter">optimize</str>  
  9. <!-- 除了索引同步外,一些配置文件的同步,默认是在conf目录下 -->  
  10.    <str name="confFiles">schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml</str>  
  11.  </lst>  
  12.   
  13. </requestHandler>  
  <requestHandler name="/replication" class="solr.ReplicationHandler" ><lst name="master"><!-- master上有数据写入时,触发commit操作,slave就会发起一次同步请求--><str name="replicateAfter">commit</str><!-- startup参数不影响同步请求--><str name="replicateAfter">startup</str><!-- master触发optimize操作,slave就会发起一次同步请求--><str name="replicateAfter">optimize</str><!-- 除了索引同步外,一些配置文件的同步,默认是在conf目录下 --><str name="confFiles">schema.xml,mapping-ISOLatin1Accent.txt,protwords.txt,stopwords.txt,synonyms.txt,elevate.xml</str></lst></requestHandler>



第二,各个Slave上的配置如下:

Xml代码 复制代码  收藏代码
  1. <requestHandler name="/replication" class="solr.ReplicationHandler" >   
  2.      
  3.        <lst name="slave">  
  4.          <!-- masterUrl代表主机的solr路径,如果存在多个core时,地址写http://localhost:9001/solr/(core名)  即可 -->  
  5.          <str name="masterUrl">http://localhost:9001/solr</str>  
  6.          <!-- 同步时间间隔10秒一次 -->  
  7.          <str name="pollInterval">00:00:10</str>  
  8.        </lst>  
  9.        
  10.   </requestHandler>  
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="slave"><!-- masterUrl代表主机的solr路径,如果存在多个core时,地址写http://localhost:9001/solr/(core名)  即可 --><str name="masterUrl">http://localhost:9001/solr</str><!-- 同步时间间隔10秒一次 --><str name="pollInterval">00:00:10</str></lst></requestHandler>


配置好之后,我们就可以测试了,分别启动Master和Slave,改变Master上的一些配置文件,比如说,同义词,禁用词文件什么的,然后触发Master节点的commit或optimize操作,这时我们就可以查看Slave节点上对应的文件的变化了。

这篇关于solrcloud的分布式集群方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/823437

相关文章

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

在Java中将XLS转换为XLSX的实现方案

《在Java中将XLS转换为XLSX的实现方案》在本文中,我们将探讨传统ExcelXLS格式与现代XLSX格式的结构差异,并为Java开发者提供转换方案,通过了解底层原理、性能优势及实用工具,您将掌握... 目录为什么升级XLS到XLSX值得投入?实际转换过程解析推荐技术方案对比Apache POI实现编程

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失