SolrCloud之Sharding路由介紹

2021-09-02 16:05:30 字數 1526 閱讀 9545

[img]

[size=medium]

在solr4.4之後,solr提供了solrcloud分布式集群的模式,它帶來的主要好處是:

(1)大資料量下更高的效能

(2)更好擴充套件性

(3)更高的可靠性

(4)更簡單易用

什麼時候應該使用solrcloud(shard)呢?

(1)更大的資料量

(2)更大的索引體積

(3)想並行索引和查詢

(4)想自定義資料分割槽

solrcloud路由的分類

a:顯式路由(composite) => 建立時明確指定shard數目,後期不能新增或者刪除shard,單個shard可以split

獨有技能:支援shard的split,不支援shard的動態新增和刪除

特點:(1)預設是基於通過hash(docid)來定位歸屬shard

(2)也支援在主鍵上加入路由字段進行路由,最多支援2級,查詢時加入_route_ 引數,設定路由策略,用例如下:

一級路由例子:

china!1 usa!2

二級路由例子:

china!beijing!1 usa!nework!2

如果路由後,資料分布不均衡可對資料傾斜的路由,進行均衡,例子如下:

china/3!1 按1/8的shard個數,均衡資料,如果shard總數是24個,那麼將會有3個shard儲存china路由的資料

china!henan/2!1 按1/4的shard個數,均衡資料,如果shard總數是24個,那麼將會有6個shard儲存china!henan的資料目前固定只有1/8和1/4的比例分配,也就是只支援2,3這樣的分配比例

b:隱式路由(implict)=> 建立時明確指定shard數目,後期可以動態新增或者刪除shard,但單個shard不能split

獨有技能:不支援shard的split,支援shard的動態新增和刪除

特點:真正的100%的手工路由,可根據業務規則進行shard設定,除此之外,支援shard的動態新增和刪除,路由控制隨心所欲,不像mysql還得依賴中介軟體才能搞定,查詢時加入_route_ 引數,設定路由策略

總結:文章簡單介紹了使用solrcloud的好處,以及什麼時候應該使用和其路由的種類與特點,路由話題在分布式系統中是乙個高階技能,它與分而治之,按需所取的思想不謀而合sharding的功能並不是solr,elasticsearch獨有,任何乙個資料庫儲存系統都可以存在這個概念,在實際的開發應用場景中,需要根據業務一些特定的特點來合理劃分維度和路由,使用得當,效率會大大提公升,無論是寫入還是查詢,在考慮設計維度或者路由時,大部分可考慮時間,類別,等級,地區等一些字段,當然具體業務還需要具體分析,不能一概而論。

官網文件:

(1)文件路由

[url]

(2)collection api

[url]

[/size]

[b][color=green][size=large]

技術債不能欠,健康債更不能欠, 求道之路,與君同行。

[/size][/color][/b]

[img]

SolrCloud集群搭建

步驟 1 搭建四個tomcat,並修改埠號 3 為每個solr例項建立乙個對應的solrhome。使用單機版的solrhome複製四份。4 需要修改solr的web.xml檔案。把solrhome關聯起來。5 修改每個solrhome中的solr.xml檔案 其中host為tomcat所在ip,ho...

solrcloud集群搭建

solrcloud 集群搭建 初始條件 1.三颱伺服器 ip 位址分別為 192.168.1.133 192.168.1.134 192.168.1.135 2.使用 solr 5.3.1,zookeeper 3.4.6 3.linux version 3.16.0 23 generic,ubunt...

雲計算Shard 分片集群解析

要構建乙個 mongodb sharding cluster,需要三種角色 shard server 即儲存實際資料的分片,每個shard可以是乙個mongod例項,也可以是一組mongod例項構成的replication set。為了實現每個shard內部的auto failover 自動故障切換...