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

相关文章

Redis实现分布式锁全过程

《Redis实现分布式锁全过程》文章介绍Redis实现分布式锁的方法,包括使用SETNX和EXPIRE命令确保互斥性与防死锁,Redisson客户端提供的便捷接口,以及Redlock算法通过多节点共识... 目录Redis实现分布式锁1. 分布式锁的基本原理2. 使用 Redis 实现分布式锁2.1 获取锁

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

Redis分布式锁中Redission底层实现方式

《Redis分布式锁中Redission底层实现方式》Redission基于Redis原子操作和Lua脚本实现分布式锁,通过SETNX命令、看门狗续期、可重入机制及异常处理,确保锁的可靠性和一致性,是... 目录Redis分布式锁中Redission底层实现一、Redission分布式锁的基本使用二、Red

redis和redission分布式锁原理及区别说明

《redis和redission分布式锁原理及区别说明》文章对比了synchronized、乐观锁、Redis分布式锁及Redission锁的原理与区别,指出在集群环境下synchronized失效,... 目录Redis和redission分布式锁原理及区别1、有的同伴想到了synchronized关键字

MySQL容灾备份的实现方案

《MySQL容灾备份的实现方案》进行MySQL的容灾备份是确保数据安全和业务连续性的关键步骤,容灾备份可以分为本地备份和远程备份,主要包括逻辑备份和物理备份两种方式,下面就来具体介绍一下... 目录一、逻辑备份1. 使用mysqldump进行逻辑备份1.1 全库备份1.2 单库备份1.3 单表备份2. 恢复

redis中session会话共享的三种方案

《redis中session会话共享的三种方案》本文探讨了分布式系统中Session共享的三种解决方案,包括粘性会话、Session复制以及基于Redis的集中存储,具有一定的参考价值,感兴趣的可以了... 目录三种解决方案粘性会话(Sticky Sessions)Session复制Redis统一存储Spr

SpringBoot实现虚拟线程的方案

《SpringBoot实现虚拟线程的方案》Java19引入虚拟线程,本文就来介绍一下SpringBoot实现虚拟线程的方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录什么是虚拟线程虚拟线程和普通线程的区别SpringBoot使用虚拟线程配置@Async性能对比H

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布