SolrCloud和MultiCore的区别

SolrCloud和MultiCore的区别

Posted on 十二月 27, 2012 in: Solr入门|评论关闭spa

 

首先咱们初步理解一下概念翻译

SolrCloud_VS_MultiCore

 

SolrCloud模式下有 Cluster,Node,Collection,Shard,LeaderCore,ReplicationCore几个概念,这里我引用一下同事对官方概念的翻译:
* Cluster群集:群集是一组做为一个单元管理的Solr节点。整个群集必须使用同一套schema和solrconfigblog

* Node节点:一个运行Solr的JVM实例接口

* Shard碎片:一个分区经过指定的复制因子(replication factor)被存储在多个节点上。全部这些节点共同造成一个碎片。一个节点可能由多个碎片组成。get

* Leader负责人:每一个碎片(shard)都有一个节点标识做为它的领导。全部的写操做通过领导节点写入指定的分区。it

* Replication Factor复制因子的最少数量的文件的副本群集维护io

补充说一下:入门

Collectionast

这里没有说Collection是什么意思,我就用本身的理解给你们说明, Collection英文直译是集合的意思,在SolrCloud模式下Collection是访问Cluster的入口。这个入口有什么用呢?好比说集群里面有好多台机器,那么访问这个集群经过哪一个地址呢,必须有一个接口地址,Collection就是这个接口地址。所以可见Collection是一个逻辑存在的东西,所以是能够跨Node的,在任意节点上均可以访问Collection。集群

Shard

Shard其实也是一个逻辑存在的东西,所以Shard也是能够跨Node的;
1个Shard下面能且只能包含一个Leader
1个Shard下面能够包含0个或者多个Replication
若是Shard下面的Leader挂掉了,会从Replication里面选举一个Leader。在Solr4.0这个版本这部分实现有很多问题:
Solr4.0的AdminGUI里面能够增长和删除Core,若是Shard里最后一个Core被删除了,Shard不会自动删除掉,会致使集群出错,咱们fix了这部分代码;
Shard里面全部的Core宕机了,会致使不能继续插入新的记录,查询不受影响,我的认为应该能够插入到其它存活的Shard里面,所以咱们fix了这部分代码;

SolrCloud的工做模式

SolrCloudCollection

 

在SolrCloud模式下,同一个集群里全部Core的配置是统一的,Core有leader和replication两种角色,每一个Core必定属于一个Shard,Core在Shard中扮演Leader仍是replication由Solr内部自动协调,目前没有找到人工干预的方法,也不须要干预,由于访问SolrCloud的过程:Solrj向Zookeeper咨询Collection的地址,Zookeeper返回存活的节点地址供访问,插入数据的时候由SolrCloud内部协调数据分发(内部使用一致性哈希)。

 

 

MultiCore的工做模式

SolrMultiCore

 

MulitCore模式下各Core之间是相互独立的,同一个Jvm下能够同时运行多个有不一样配置的Core。固然在这种模式下,也能够经过参数同时访问多个Core,能够经过配置实现master->replication主从模式的复制,不过这些都须要本身编写的JavaApp来完成。

相关文章
相关标签/搜索