新版SolrCloud概述

在Lucene/Solr的SVN trunk中的SolrCloud已經可用, 在即將發佈的4.0版本中將正式包含.

目前SolrCloud已經成熟, 可以支持分佈式索引和分佈式搜索. 下面是我們一個項目採用新的SolrCloud的部署結構圖:
[align=center][img]http://sematext.files.wordpress.com/2012/01/distributedsolr-arch.png[/img][/align]
看起來是否非常簡單? 下面我們看看內部的一些實現細節.

[b]SolrCloud功能和架構[/b]
下面是SolrCloud一些不錯的功能:
[list]
[*]中心化集羣配置
[*]自動容災
[*]近實時搜索
[*]領導選舉
[*]索引持久化
[/list]
另外SolrCloud也能被配置成:
分片(shard)索引
每個shard可以有一個或多個副本(replica)

多個shard和replica可以組成一個Collection(從圖中可以看出就是一個SolrCloud), 多個Collection可以部署到一個SolrCloud集羣. 而一個搜索請求可以同時搜索多個Collection. 其工作流程就像下圖中那樣.
[img]http://sematext.files.wordpress.com/2012/01/distributedsolr-shardsreplicas.png[/img]

[b]SolrCloud Shard, Replica, Replication[/b]
就像上圖那樣, 一個新的doc將發送到一個SolrCloud集羣中任何一個節點. doc能自動選擇發送到哪一個Shard, 如果Shard有多個副本, doc會自動進行同步, 與原來的master/slave結構有所不同, 數據同步是實時的(原來則是定期批量同步).

[b]集羣配置[/b]
SolrCloud集羣的所有的配置存儲在ZooKeeper. 一旦一個SolrCloud節點啓動, 該節點的配置信息將發送到ZooKeeper上存儲.

Shard Replica除了作爲容災備份存在, 另外一個作用就是分散查詢請求, 提高整個集羣的查詢能力.

[b]索引處理[/b]
索引文檔的更新在Shard和Replica之間是自動和實時的. 因爲不存在master server, doc可以發送到任何一個SolrCloud(也就是一個Collection), 然後由SolrCloud完成剩下的事情. 這樣就不再存在以前master/slave的單點問題.

[b]搜索方式[/b]
有三種不同的搜索方式:
在單個Solr實例上搜索
在單個Collection上搜索(即在一個Collection的多個Shard上搜索)
在指定的Shard上搜索
在多個Collection上搜索, 並將最後merge的結果返回.

[b]運維管理[/b]
除了原來的標準core admin, 還增加了其他方式:
在一個Collection上創建一個Shard
新建一個Collection
增加節點.

[b]下一步計劃[/b]
[url=http://wiki.apache.org/solr/NewSolrCloudDesign]這裏[/url]有新的SolrCloud設計方案.

參考原文:[url]http://blog.sematext.com/2012/02/01/solrcloud-distributed-realtime-search/[/url]
發佈了264 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章