(转)淘淘商城系列——初始SolrCloud
http://blog.csdn.net/yerenyuan_pku/article/details/72944611
本文我只是简单介绍一下SolrCloud,如果大家要是感兴趣的话,可以参考SolrCloud之分布式索引及与Zookeeper的集成这篇文章进行学习哟!
SolrCloud的概述
Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库;Solr是以Lucene为基础实现的文本检索应用服务;SolrCloud是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeeper的分布式搜索方案,主要思想是使用Zookeeper作为集群的配置信息中心。也可以说,SolrCloud是Solr的一种部署方式,除SolrCloud之外,Solr还可以以单机方式和多机Master-Slaver方式进行部署。分布式索引是指当索引越来越大,一个单一的系统无法满足磁盘需求的时候,或者一次简单的查询实在要耗费很多时间的时候,我们就可以使用Solr的分布式索引了。在分布式索引中,原来的大索引,将会分成多个小索引,Solr可以将这些小索引返回的结果合并,然后返回给客户端。
对此,我个人对SolrCloud的理解是:SolrCloud(Solr云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时可使用SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高的时候,这时就需要使用SolrCloud来满足这些需求。SolrCloud是基于Solr和Zookeeper(来管理Solr集群的)的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。Zookeeper有以下几个特色功能:
- 集中式的配置信息。
- 自动容错。
- 近实时搜索。
- 查询时自动负载均衡。
SolrCloud中完整索引(Collection)的逻辑图
SolrCloud中完整索引(Collection)的逻辑图如下图所示。
在SolrCloud模式下Collection是访问Cluster的入口,这个入口有什么用呢?比如说集群里面有好多台机器,那么访问这个集群通过哪个地址呢,必须有一个接口地址,Collection就是这个接口地址。可见Collection是一个逻辑存在的东西,因此是可以跨Node的,在任意节点上都可以访问Collection。Shard其实也是逻辑存在的,因此Shard也是可以跨Node的;1个Shard下面可以包含0个或者多个Replica,但1个Shard下面能且只能包含一个Leader,如果Shard下面的Leader挂掉了,会从Replica里面再选举一个Leader。
SolrCloud的工作模式
首先来看下索引和Solr实体对照图。
SolrCloud中包含有多个Solr Instance,而每个Solr Instance中包含有多个Solr Core,Solr Core对应着一个可访问的Solr索引资源,每个Solr Core对应着一个Replica或者Leader,这样,当Solr Client通过Collection访问Solr集群的时候,便可通过Shard分片找到对应的Replica即SolrCore,从而就可以访问索引文档了。
在SolrCloud模式下,同一个集群里所有Core的配置是统一的,Core有Leader和Replica两种角色,每个Core一定属于一个Shard,Core在Shard中扮演Leader还是Replica由Solr内部Zookeeper自动协调。
访问SolrCloud的过程:Solr Client向Zookeeper咨询Collection的地址,Zookeeper返回存活的节点地址供访问,插入数据的时候由SolrCloud内部协调数据分发(内部使用一致性哈希)。
Solr集群的系统架构
Solr集群的系统架构如下图所示。
下面我稍微分析一下SolrCloud的物理结构和逻辑结构。
物理结构
三个Solr实例( 每个实例包括两个Core),组成一个SolrCloud。
逻辑结构
索引集合包括两个Shard(shard1和shard2),shard1和shard2分别由三个Core组成,其中一个Leader两个Replica,Leader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。用户发起索引请求分别从shard1和shard2上获取,解决高并发问题。
collection
Collection在SolrCloud集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个Shard(分片),它们使用相同的配置信息。比如:针对商品信息搜索可以创建一个collection,collection=shard1+shard2+….+shardX。
Core
每个Core是Solr中一个独立运行单位,提供索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成,所以collection一般由多个core组成。
Master或Slave
Master是master-slave结构中的主结点(通常说主服务器),Slave是master-slave结构中的从结点(通常说从服务器或备服务器)。同一个Shard下master和slave存储的数据是一致的,这是为了达到高可用目的。
Shard
Collection的逻辑分片,每个Shard被化成一个或者多个Replica,通过选举确定哪个是Leader
转载于:https://www.cnblogs.com/telwanggs/p/6970223.html
(转)淘淘商城系列——初始SolrCloud相关推荐
- (转) 淘淘商城系列——Redis集群的搭建
http://blog.csdn.net/yerenyuan_pku/article/details/72860432 本文我将带领大家如何搭建Redis集群.首先说一下,为何要搭建Redis集群.R ...
- (转)淘淘商城系列——内容管理
http://blog.csdn.net/yerenyuan_pku/article/details/72845954 上文我们一起学习了内容分类管理,虽说实现了展示内容分类和新增节点这两个功能,但重 ...
- (转) 淘淘商城系列——CMS内容管理系统工程搭建
http://blog.csdn.net/yerenyuan_pku/article/details/72825801 淘淘商城系列--CMS内容管理系统工程搭建 上文我们一起搭建了表现层中的商城门户 ...
- (转) 淘淘商城系列——使用FastDFS-Client客户端进行上传图片的测试
http://blog.csdn.net/yerenyuan_pku/article/details/72804018 不久之前,我们实现了商品的类目选择这个功能,但这只是万里长征的第一步,我们还有很 ...
- (转)淘淘商城系列——分布式文件系统FastDFS
http://blog.csdn.net/yerenyuan_pku/article/details/72801777 商品添加的实现,包括商品的类目选择,即商品属于哪个分类?还包括图片上传,对于图片 ...
- (转)淘淘商城系列——服务调用测试
http://blog.csdn.net/yerenyuan_pku/article/details/72761467 我们已经发布dubbo服务,现在本文来测试一下引用dubbo服务是否好使.在启动 ...
- 微信小程序之仿淘宝分类入口 —— 微信小程序实战商城系列(2)
分类入口,已经成为了商城项目必须的布局之一,这里以仿照淘宝的分类入口来做案例 下图红框部分,就是本文重点讲解部分,另外本文并没有写点击某个入口跳转页面. 如需学习页面跳转的同学,可以参考此文 微信小程 ...
- (转)淘淘商城系列——商品搜索功能测试
http://blog.csdn.net/yerenyuan_pku/article/details/72941506 到这里,我相信大家也是不容易,我自己也算是很不容易写到这里,希望自己能一直写下去 ...
- (转) 淘淘商城系列——搜索服务搭建
http://blog.csdn.net/yerenyuan_pku/article/details/72886305 Solr服务配置好之后,接下来我们就要考虑一个问题,那就是我们要把商品数据导入到 ...
最新文章
- 字符串匹配KMP算法
- 今天已经算一下过来有一个礼拜了,还是感觉是在熬日子似的
- Windows消息备忘录
- 逆误差函数:torch.erfinv
- mysql优化概述4
- 【Python基础】必知必会的8个Python列表技巧
- Kettle使用_23 Excel表格输入ODS POI
- 0/1背包问题-----动态规划求解
- windows下安装Python-Whl文件
- Visual Studio 使用说明文档、VScode 使用手册
- [UE4]复制引起的重复对象
- Python实战项目—金融量化分析(数据的简单预处理)
- 黑盒测试和白盒测试的区别
- JavaWeb课堂笔记
- 关于几种常用的脱壳方法总结
- failover.mysql_物理standby的Failover
- TRITTON天猫旗舰店开业 2月20日7折大促
- python杨辉三角居中_利用python打印杨辉三角
- 利用keil完成ARM汇编语言编程入门实践
- linux小白工具,一个小工具(setup),小白也能独立管理自己的Linux服务器