SolrCloud的介绍
SolrCloud(solr云)是Solr提供的分布式搜索方案。
当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。
当索引量很大,搜索请求并发很高时,同样需要使用SolrCloud来满足这些需求。
不过当一个系统的索引数据量少的时候是不需要使用SolrCloud的。
SolrCloud是基于Solr和Zookeeper的分布式搜索方案。它的主要思想是使用Zookeeper作为SolrCloud集群的配置信息中心,统一管理solrcloud的配置,比如solrconfig.xml和schema.xml。
它有几个特色功能:
1)集中式的配置信息
2)自动容错
3)近实时搜索
4)查询时自动负载均衡
Zookeeper的功能有很多:目录服务(注册中心)、配置中心
Solrcloud的结构
solrcloud为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行Shard分片,每个分片由多台服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。
solrcloud是基于solr和zookeeper部署,zookeeper是一个集群管理软件,solrcloud需要由多台solr服务器组成,然后由zookeeper来进行协调管理。
下图是一个SolrCloud应用的例子:
总结:
一个solrcloud集群从架构方面来讲分成物理结构和逻辑结构进行理解.
物理结构:
一个solrcloud集群,由多台solr服务器(安装了solr对应的tomcat服务器的邮件服务器)组成,每一台solr服务器又是可以安装多个tomcat,每个tomcat中安装一个solr.war.每个solr.war对应一个solrhome,每个solrhome只需要配置一个solrcore.
逻辑结构:
一个solrcloud从逻辑上可以看成是一个collection(索引集合).一个collection可以从逻辑上被分为多个片shard,每个片又可以由多个solrcore组成,一个片的多个solrcore需要有一个master,其他的都是slave.
Solrcloud架构的优势:
1、solrcloud集群中使用分片的架构,每片提供搜索和索引的内容是不一样的。这样架构的好处是可以高扩展。
2、solrcloud集群中同一片由不同的solrcore组成,这样如果一台solrcore失败,是不会影响使用,这样就解决了高可用。而且还可以解决高并发。
物理结构
从物理结构来看,solrcloud需要三台solr服务器,每台服务器包括两个solrcore实例,共同组成一个solrcloud。
逻辑结构
从逻辑结构来说,整个solrcloud就看成一个大的solrcore,也就是一个collection。而一个collection被分成两个shard分片(shard1和shard2)。
shard1和shard2又分别由三个oslrcore组成,其中一个Leader两个Replication。Leader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。
用户发起索引请求分别从shard1和shard2上获取,解决高并发问题。
Collection:
Collection在Solrcloud集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个shard分片,这些shard分片使用相同的配置信息。
比如:针对商品信息搜索可以创建一个collection。
collection=shard1+shard2+....+shardX
Shard:
Shard是Collection的逻辑分片。每个Shard被化成一个或者多个replication,通过选举确定哪个是Leader。
Core:
每个Core都是Solr中一个独立运行单位,提供索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成,一个shard由多个core组成,所以也可以说collection一般由多个core组成。
Master或Slave
Master是master-slave结构中的主结点(通常说主服务器),Slave是master-slave结构中的从结点(通常说从服务器或备服务器)。同一个Shard下master和slave存储的数据是一致的,这是为了达到高可用目的。
SolrCloud的介绍的更多相关文章
- Solr资料
Apache Solr Reference GuideCovering Apache Solr 5.5 https://archive.apache.org/dist/lucene/solr/ref- ...
- Solr 文章集成
Solr 文章集成 solr原理 solr wiki: http://wiki.apache.org/solr/ 分布式全文检索系统SolrCloud简单介绍 http://my.oschina.ne ...
- Solr术语介绍:SolrCloud,单机Solr,Collection,Shard,Replica,Core之间的关系
Solr有一堆让人发晕的术语如:collections,shards,replicas,cores,config sets. 在了解这些术语之前需要先做做如下功课: 1)什么是倒排索引? 2)搜索引擎 ...
- Solr系列二:solr-部署详解(solr两种部署模式介绍、独立服务器模式详解、SolrCloud分布式集群模式详解)
一.solr两种部署模式介绍 Standalone Server 独立服务器模式:适用于数据规模不大的场景 SolrCloud 分布式集群模式:适用于数据规模大,高可靠.高可用.高并发的场景 二.独 ...
- Apache SolrCloud安装
1.介绍 SolrCloud通过ZooKeeper集群来进行协调,使一个索引进行分片,各个分片可以分布在不同的物理节点上,多个物理分片组成一个完成的索引Collection.SolrCloud自动支 ...
- Solr Cloud - SolrCloud
关于 Solr Cloud Zookeeper 入门,介绍 原理 原封不动转自 http://wiki.apache.org/solr/SolrCloud/ ,文章的内存有些过时,但是了解原理. Th ...
- SolrCloud分布式集群部署步骤
Solr及SolrCloud简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成 ...
- solrconfig.xml介绍
说明:请务必先了解如下知识,否则阅读本文会晕. Solr术语介绍:SolrCloud,单机Solr,Collection,Shard,Replica,Core之间的关系 Solr通过三个主要文件来作配 ...
- Linux下部署solrCloud
1. 准备工作 这里我只是把我的师兄教我的关于Solrcloud搭建的过程,以及需要注意的地方文档化了.感谢他教会了我很多. 1.机子IP 三台安装linux系统的机子的IP地址为: 172.24.1 ...
随机推荐
- Hadoop学习笔记-001-CentOS_6.5_64_连接外网设置
参考:http://blog.csdn.net/u010270403/article/details/51444677 虚拟机中共五个centos系统,每个系统有两个用户root和hadoop:cdh ...
- 工作总结之Git
工作中,终端数据的制作好后,使用的是SmartGit(注:Git的一个客户端)来push到服务器:但是出现了奇怪的现象: 1.git checkout到本地的目录,理论上目录下有包括新增,删除,变更在 ...
- 蓝桥网试题 java 入门训练 Fibonacci数列
---------------------------------------------------------------------------------------------------- ...
- SOCKET是什么
一.问题的引入--socket的引入是为了解决不同计算机间进程间通信的问题 1.socket与进程的关系 1).socket与进程间的关系:socket 用来让一个进程和其他的进程互通信息(IPC ...
- Python系列之Collections内置模块(2)
defaultdict 返回一个类 dict 的对象,defaultdict 是内置的 dict 类的子类. 如果访问 dict 未初始化的 key 值时,会抛出 KeyError 异常. s_tup ...
- ionic,Angular 开发实践
1.实践参考 http://www.jianshu.com/p/ea0dcf1d31c9 原文思路搭建 2. 环境搭建步骤 : a. 安装node b.安装 cordova sudo n ...
- Code forces 719A Vitya in the Countryside
A. Vitya in the Countryside time limit per test:1 second memory limit per test:256 megabytes input:s ...
- 用css改变console.log的输出样式
console.log允许你通过css来格式化输出,格式如下: console.log('%c字符串[%c字符串]', 样式1, [样式2]) 其中"%c"为模板字符串 例子: 1 ...
- Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门
一.MVC简单入门 1.1.MVC概念 视图(View) 代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML.XML和Applet. 模型(Model) 表示用户对其数 ...
- Spark RDD编程核心
一句话说,在Spark中对数据的操作其实就是对RDD的操作,而对RDD的操作不外乎创建.转换.调用求值. 什么是RDD RDD(Resilient Distributed Dataset),弹性分布式 ...