solr支援伺服器的分布式集群部署,即solrcloud。在solrcloud中,乙個索引可以被分布到不同的伺服器,即不同的node,所有的這些node組成乙個collection,並且充分考慮了高可靠性和容錯的設計。
solrcloud使用zookeeper來管理這些伺服器,被搜尋的檔案可以放在任何乙個伺服器,zookeeper會自動管理它們。
乙個collection可以把資料(索引檔案)拆分成多份,放進幾個不同的shard中,乙個shard的資料可以有多個備份(replica)。乙個shard的多個replica中會有乙個leader,由選舉程式推選出來。乙個replica相當於乙個core。
這個功能的主要特性是:
如上圖,乙個collection(gettingstarted)被拆分到兩個不同的shard中,而每個shard都有兩個伺服器(node)提供負載均衡和遇錯切換的服務。這個分布式的結構是由zookeeper負責管理的。那些node中,實心圓圈的就是leader。
相關概念:
shard的數量決定了索引是如果被拆分的,所以,當乙個cluster初始化完成之後,shard的數量是不能改的。
建立乙個新的core並加入到乙個collection和shard中:
shard的遷移:
如果原來只有乙個機器、或只有少量機器,可以先規劃好shard的數量並啟動,然後等有新的機器之後,在新的機器中為某個shard啟動乙個新的replica,然後把原來的shard移除,這樣zookeeper就會把新的replica提公升為這個shard的leader了。
leader和replica:
如果solr啟動的時候,引數numshards=2,那麼前兩個啟動的node就是leader,分別服務於這兩個shard,第三個和之後啟動的node就是replica,他們會依次按照那兩個leader加入cluster的順序分配給那兩個leader(使用round-robin的方式)。也可以在啟動node的時候使用shardid引數直接把這個node分配給某個shard。當solr重啟的時候,所有的node還是歸屬到重啟之前所歸屬的shard,同個shard中先啟動的node就是leader(first come first served)。
當乙個leader無法工作的時候,這個shard中的某乙個replica會被自動推選為leader。
在solr admin ui介面中,cloud選單裡面可以看到哪個是leader(實心圓圈者)。
新的文件可以被送往任何乙個node,solrcloud會自動把它們分配到合適的shard中:
新增shard:
如果需要加多乙個shard,可以使用collections api,建立兩個新的shard,再把現有shard中的索引分配到這兩個新shard中。舊的shard需要手動刪掉。
solr solrcloud集群動態新增節點
集群動態新增節點 前面的例子中用了三颱zk,兩台 solr 現在新增一台 solr 刪除預設的 example 1.修改 solr 配置 solr.in.sh zk host 192.168.75.101 2181,192.168.75.102 2181,192.168.75.103 2181 2....
const相關,指標相關,陣列相關
include include head.h int a 3,c 2 const int b a b 8 error b c right const用來修飾指標所指向的變數,還是指標 可以修改指標指向位址,但不能直接修改指向內容 int const b a b 8 right p error con...
自相關互相關卷積的 自相關與互相關
自相關 autocorrelation 也叫序列相關,是乙個訊號與其自身在不同時間點的互相關。非正式地來說,自相關是對同一訊號在不同時間的兩次觀察,通過對比來評判兩者的相似程度。自相關函式就是訊號x t 和它的時移訊號x t 的乘積平均值。它是時移變數 的函式。這是從書上抄來的話,到底是什麼意思呢?...