一.SolrCloud从架构图上来看,分为物理结构和逻辑结构。
1. 物理结构方面:
一个SolrCloud由多个solr服务器构成,在每台solr服务器上都存在有两个core。
2. 逻辑结构方面:
索引集合包括两个Shard(shard1和shard2),shard1和shard2分别由三个Core组成,其中一个Leader两
个Replication,Leader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。用户发起索引请求分别从shard1和shard2上获取,解决高并发问题。
二.组成部分
1. collection
Collection在SolrCloud集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个Shard(分片),
它们使用相同的配置信息。
比如:针对商品信息搜索可以创建一个collection。
collection=shard1+shard2+....+shardX
2. Core
每个Core是Solr中一个独立运行单位,提供 索引和搜索服务。一个shard需要由一个Core或多个Core组成。
由于collection由多个shard组成所以collection一般由多个core组成。
3. Master或Slave
Master是master-slave结构中的主结点(通常说主服务器),Slave是master-slave结构中的从结点(通常说从服务
器或备服务器)。同一个Shard下master和slave存储的数据是一致的,这是为了达到高可用目的。
4. Shard
Collection的逻辑分片。每个Shard被化成一个或者多个replication,通过选举确定哪个是Leader。
三.core和collection的区别
1.在单节点的Solr服务器中,core和collection其实没有太大区别。
2.在Solr集群中,core属于物理索引结构,而collection属于逻辑索引结构,一个collection由多个core组成,一个collection由多个shard组成。
所以总结来说:
collection数据量太大进行拆分---->多份Shard,每份Shard为每份Shard为collection的不相交子集----->Shard只有一份存在单点故障,每份Shard都复制2份放到其他机器(Replica),我们查询的时候只用到其中一份(Leader)----->一个Shard对应一个Core,每台Solr机器上可以有多个Core-------------->多台Solr机器组成Solr集群。