[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 自動故障切換...