合并Distribution和Replication

2018-01-17 11:09 更新

合并Distribution和Replication

如果您的索引對(duì)于單臺(tái)計(jì)算機(jī)來說太大,并且您的查詢量無法與單個(gè)分片保持同步,那么是時(shí)候在分布式搜索設(shè)置中復(fù)制每個(gè)分片。

這個(gè)想法是將分布式搜索與復(fù)制相結(jié)合。如下圖所示,組合的分布式復(fù)制配置使用每個(gè)分片的master服務(wù)器,然后從master服務(wù)器復(fù)制1到n個(gè)slave服務(wù)器。在標(biāo)準(zhǔn)復(fù)制配置中,master服務(wù)器處理更新和優(yōu)化,而不會(huì)不利地影響查詢處理性能。

查詢請(qǐng)求應(yīng)在每個(gè)分片奴隸之間進(jìn)行負(fù)載平衡。如果服務(wù)器出現(xiàn)故障,這可以增加查詢處理能力和故障切換備份。

Solr

上圖表示的是:組合了復(fù)制和master-slave分布的Solr配置

這個(gè)配置中的master分片都不知道彼此。您可以索引到每個(gè)master,將索引復(fù)制到每個(gè)slave,然后然后在整個(gè)slave服務(wù)器上分布搜索,使用每個(gè)master/slave分片中的一個(gè)slave。

為了實(shí)現(xiàn)高可用性,您可以使用負(fù)載均衡器為每個(gè)分片的slave設(shè)置一個(gè)虛擬IP。如果您不熟悉負(fù)載平衡,HAProxy(http://haproxy.1wt.eu/)是一個(gè)很好的開源軟件負(fù)載平衡器。如果從屬服務(wù)器發(fā)生故障,一個(gè)好的負(fù)載均衡器將使用某種技術(shù)(通常是心跳系統(tǒng))檢測(cè)到故障,并將所有請(qǐng)求轉(zhuǎn)發(fā)給與故障slave在一起的剩余活動(dòng)slave。然后應(yīng)設(shè)置單個(gè)虛擬IP,以便請(qǐng)求可以訪問單個(gè)IP,并為搜索slave服務(wù)器的每個(gè)虛擬IP獲得負(fù)載平衡。

通過這種配置,您將擁有完全負(fù)載均衡的搜索方容錯(cuò)系統(tǒng)(Solr尚不支持容錯(cuò)索引)。傳入的搜索將被移交給其中一個(gè)正在運(yùn)行的slave,然后slave將為您的配置中的每個(gè)碎片分配搜索請(qǐng)求。slave將向每個(gè)分片的每個(gè)虛擬IP發(fā)出請(qǐng)求,負(fù)載均衡器將選擇其中一個(gè)可用的slave。最后,結(jié)果將被合并成一個(gè)結(jié)果集并返回。如果任何一個(gè)slave不能用,他們將被取消旋轉(zhuǎn),其余的奴隸將被使用。如果一個(gè)分片master失敗了,那么仍然可以從這個(gè)slave提供搜索,直到你糾正了這個(gè)問題并把這個(gè)master重新投入生產(chǎn)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)