在Lucene/Solr的SVN trunk中的SolrCloud已经可用, 在即将发布的4.0版本中将正式包含.
目前SolrCloud已经成熟, 可以支持分布式索引和分布式搜索. 下面是我们一个项目采用新的SolrCloud的部署结构图:
看起来是否非常简单? 下面我们看看内部的一些实现细节.
SolrCloud功能和架构
下面是SolrCloud一些不错的功能:
- 中心化集群配置
- 自动容灾
- 近实时搜索
- 领导选举
- 索引持久化
另外SolrCloud也能被配置成:
分片(shard)索引
每个shard可以有一个或多个副本(replica)
多个shard和replica可以组成一个Collection(从图中可以看出就是一个SolrCloud), 多个Collection可以部署到一个SolrCloud集群. 而一个搜索请求可以同时搜索多个Collection. 其工作流程就像下图中那样.
SolrCloud Shard, Replica, Replication
就像上图那样, 一个新的doc将发送到一个SolrCloud集群中任何一个节点. doc能自动选择发送到哪一个Shard, 如果Shard有多个副本, doc会自动进行同步, 与原来的master/slave结构有所不同, 数据同步是实时的(原来则是定期批量同步).
集群配置
SolrCloud集群的所有的配置存储在ZooKeeper. 一旦一个SolrCloud节点启动, 该节点的配置信息将发送到ZooKeeper上存储.
Shard Replica除了作为容灾备份存在, 另外一个作用就是分散查询请求, 提高整个集群的查询能力.
索引处理
索引文档的更新在Shard和Replica之间是自动和实时的. 因为不存在master server, doc可以发送到任何一个SolrCloud(也就是一个Collection), 然后由SolrCloud完成剩下的事情. 这样就不再存在以前master/slave的单点问题.
搜索方式
有三种不同的搜索方式:
在单个Solr实例上搜索
在单个Collection上搜索(即在一个Collection的多个Shard上搜索)
在指定的Shard上搜索
在多个Collection上搜索, 并将最后merge的结果返回.
运维管理
除了原来的标准core admin, 还增加了其他方式:
在一个Collection上创建一个Shard
新建一个Collection
增加节点.
下一步计划
这里有新的SolrCloud设计方案.
参考原文:
http://blog.sematext.com/2012/02/01/solrcloud-distributed-realtime-search/
分享到:
相关推荐
#### SolrCloud概述 SolrCloud是Apache Solr提供的一种分布式搜索解决方案,尤其适用于需要大规模容错、分布式索引和检索能力的应用场景。当索引数量较少时,通常无需启用SolrCloud;但在面对庞大的索引数据量和高...
### SolrCloud概述 SolrCloud作为Apache Solr的一个核心特性,主要应用于大规模、高性能的分布式搜索场景。当系统面临海量数据索引及高并发查询请求时,SolrCloud能够提供一套完整且高效的解决方案。 #### ...
#### 一、SolrCloud与ElasticSearch概述 **SolrCloud** 和 **ElasticSearch** 都是当前业界非常流行的搜索引擎技术,两者均基于 **Lucene** 构建,但在设计哲学、功能特性和应用场景上存在一定的差异。以下是针对...
#### 一、Zookeeper概述 Zookeeper是一个高性能、分布式的、开源的分布式应用协调服务。它提供了一系列简单原始的功能,这些功能可以帮助分布式应用程序实现更高级的服务,例如同步、配置管理、集群管理以及命名...
#### 一、SolrCloud概述 SolrCloud 是 Apache Solr 提供的一种分布式搜索解决方案。它主要用于处理大规模数据集的索引和检索工作,并具备容错性和分布式特性。当索引数据量较少时,通常无需使用 SolrCloud;而当...
#### 二、SolrCloud概述 SolrCloud是自Solr 4.0版本起引入的一种全新的分布式搜索方案。它采用了Zookeeper作为协调服务,以实现高度可伸缩和高可用性的搜索服务。相比于传统的单机或多机Master-Slave部署方式,...
#### 一、SolrCloud概述 **SolrCloud**是Apache Solr提供的分布式搜索解决方案,适用于需要处理大规模数据集、支持高并发搜索请求的场景。当单一服务器上的索引数据量较小、搜索请求量不多时,并不需要使用...
#### 一、SolrCloud概述 - **定义与应用场景:** - **定义:** SolrCloud 是 Apache Solr 提供的一种分布式搜索解决方案,适用于需要大规模、高容错性、分布式索引及检索能力的应用场景。 - **应用场景:** 当...
1. **Solr概述**:Solr是基于Java的全文搜索引擎,它可以处理和索引大量数据,提供快速的全文检索、高亮显示结果、拼写检查、相关性排序等功能。Solr通常与Apache Lucene一起使用,Lucene是一个底层的高性能全文搜索...
#### SolrCloud 结构概述 SolrCloud 是Apache Solr的一个分布式模式,支持水平扩展,并提供了高可用性和容错能力。它基于ZooKeeper来协调集群中的各个Solr节点。 **物理结构** 在SolrCloud环境下,Solr集群通常由...
通过以上知识点的概述,可以得知文件内容涉及Solr的方方面面,从基础概念到高级配置、从索引处理到查询优化,以及版权和出版信息。由于OCR技术的限制,部分文字可能存在误差,但整体上能够反映出Solr in Action这...
- **概述**:solrj 是 Java API 形式提供的客户端库,允许开发者通过编程方式与 Solr 交互。 - **应用场景**: - **索引文档**:使用 solrj 可以方便地向 Solr 集群添加、删除或更新文档。 - **执行查询**:通过 ...
1. **Solr 架构概述**: - **分布式搜索**:Solr 支持分布式搜索,能够处理海量数据,通过将索引分片分布在多个节点上,实现水平扩展。 - **XML/JSON/CSV 等多种输入格式**:Solr 允许用户以多种格式导入数据,...
#### 三、分布式系统概述 **3.1 分布式系统的定义** - **定义**:分布式系统是指一组相互连接的计算机集合,它们通过网络相互通信和协作,共同完成一个或多个任务。 - **特点**:分布式系统中的各个组件可以分布在...
1. **Solr概述** Solr的主要功能是全文检索,但同时也支持范围查询、 faceted search(分面搜索)、拼写建议、近似搜索等高级功能。它能够处理大量数据,并且提供了丰富的查询接口和结果排序方式,使得用户可以快速...
5. 高级Solr应用:包括如何扩展Solr/SolrCloud、实现多语言搜索、执行复杂数据操作、相关性调整和创造性思维等高级主题。 6. 附录部分提供了从源代码构建Solr以及与Solr社区合作的指导。 Solr的特性使它非常适合于...
- **Collection**:SolrCloud中的概念,由一个或多个Core(分片)组成,实现分布式索引。 3. **Solr的安全问题** 近年来,Apache Solr曝出过多个高危漏洞,包括但不限于任意文件读取、远程代码执行等。这些漏洞...
一、Solr概述 Solr是基于Lucene的搜索服务器,它提供了一个高效、可扩展的全文检索、分析和分布式搜索解决方案。Solr能够快速地索引大量数据,并支持多种类型的文档,如HTML、XML、PDF等。它还提供了丰富的查询语言...