0
点赞
收藏
分享

微信扫一扫

solr学习第九课程----SolrCloud索引分布介绍


solr学习第九课程----SolrCloud索引分布介绍_solr



(1) 执行添加索引请求,分成两种情况

1. Replica(在本例中是端口为8002的节点)接收到请求 

2. Replica将请求转发至它的Leader节点(在本例中是端口为8001的节点) 

3. Leader节点最终处理该请求,并且确保所有附加在它上面的Replica节点也处理这个请求。


前提条件:通过solrcloud方式创建索引

-DzkHost=192.168.17.121:2181,192.168.17.121:2182,192.168.17.121:2183  DnumShards=2

-DzkHost=192.168.17.121:2181,192.168.17.121:2182,192.168.17.121:2183  DnumShards=2

-DzkHost=192.168.17.121:2181,192.168.17.121:2182,192.168.17.121:2183  DnumShards=2

-DzkHost=192.168.17.121:2181,192.168.17.121:2182,192.168.17.121:2183 



通过程序我们创建1 000 000索引,数据会存储在shard1,shard2两个分片上。

结论:数据分别存放到shard1,shard2上,shard1,shard2上的数据不会重复




每个shard上存储的索引时相同的,因为同一个shard下索引时复制的。

集合名称

分片名称

节点

每个节点索引数

core0

shard1

192.168.12.121:8001

501233

192.168.12.121:8003

501233

shard2

192.168.12.121:8003

498767

192.168.12.121:8004

498767

其中:总索引数=shard1索引数据 + shard2 索引数据

shard1索引数据为8001或者8002种任意获取一个节点数据。即数据为501233

Shard2索引数据为8003或者8004种任意获取一个节点数据。即数据为498767

那么总索引数据为1000000 = 501233 + 498767


验证方法

http://IP:PORT/solr/core0/select?q=*%3A*&wt=json&indent=true&&distrib=false

其中distrib=false表示仅从当前节点获取数据。



(2)节点宕机索引情况


第一种:shard1或者shard2中任意一个节点宕机

solr学习第九课程----SolrCloud索引分布介绍_请求转发_02


查询索引:1000000 ,验证总索引数=shard1索引数据501233索引数据498767 结果 正确




第二种:shard1或者shard2种的两个节点同时宕机




solr学习第九课程----SolrCloud索引分布介绍_数据_03

查询索引:501233 ,验证总索引数=shard1索引数据个数 501233索引数据个数0 ,结果 正确

总结:只要保证shard1和shard2种至少有一个节点正常,那么就可以保证数据连续正常,由于总的索引时所有shard之和,由于shard2宕机,数据会存在丢失。






举报

相关推荐

0 条评论