MongoDB Replica Sets和Auto Sharding配置簡(jiǎn)介
MongoDB Replica Sets和Auto Sharding配置的簡(jiǎn)單步驟是本文我們主要要介紹的內(nèi)容,網(wǎng)上有很多教程把Replica Sets和Auto Sharding(或者是Sharding)寫在了一起,對(duì)于初學(xué)者可能會(huì)覺得有些莫名,之所以這樣做是因?yàn)椋粋€(gè)較好的Auto Sharding解決方案是將每個(gè)一shard(分片)定為一個(gè)Replica Sets(復(fù)制集)。
一個(gè)Replica Sets由若干個(gè)mongod instance組成,在這個(gè)集合中,所有的instance的數(shù)據(jù)相同,這使得即使有某一臺(tái)機(jī)子當(dāng)?shù)袅耍渌鼨C(jī)子還是可以正常運(yùn)行,而且這部分的控制是由Mongo自動(dòng)完成的,因而盡可能地減少了因當(dāng)機(jī)而產(chǎn)生的錯(cuò)誤及人工處理的部分。
而Sharding是可以將龐大的數(shù)據(jù)庫(kù)拆分為幾個(gè)部分分別發(fā)放到每一個(gè)shard,一來降低了單一一臺(tái)服務(wù)器的壓力,同時(shí)通過減少潛在的損失比例來提高效率。也就是說一個(gè)基于Replica Sets的Auto Sharding結(jié)構(gòu),可以把一個(gè)完整而且龐大的數(shù)據(jù)庫(kù)根據(jù)個(gè)人定制,拆分到若干個(gè)服務(wù)器集合,每個(gè)服務(wù)器集合中的服務(wù)器群又相互保持?jǐn)?shù)據(jù)同步,所以除非一個(gè)服務(wù)器集合中的所有服務(wù)器都當(dāng)?shù)袅耍駝t某臺(tái)或幾臺(tái)的當(dāng)機(jī)對(duì)數(shù)據(jù)庫(kù)的影響是微忽其微的。關(guān)于這兩個(gè)部分,其實(shí)在Mongo的官方文檔里有詳細(xì)的說明,所以此文是以總結(jié)歸納為目的而寫。
(圖片來源:http://www.mongodb.org/display/DOCS/Sharding+Introduction)
1.一個(gè)完整的Auto Sharding功能的實(shí)現(xiàn)需要用到mongod和mongos,其中mongos作為真正的應(yīng)用接口,數(shù)據(jù)的輸入輸出都應(yīng)經(jīng)過它。然后還需要一個(gè)config server,它是mongod,但它不會(huì)用來存儲(chǔ)應(yīng)用程序的數(shù)據(jù)庫(kù),通俗的來說而是存放了這整個(gè)結(jié)構(gòu)的配置屬性,mongos會(huì)從config server中讀取配置來進(jìn)行工作。最后是真正會(huì)存儲(chǔ)數(shù)據(jù)的mongod們,它們按組分為若干個(gè)Replica Sets,用來存放mongos拆分下來的各個(gè)sharding。
2.配置推薦從配置各個(gè)Replica Sets開始,一個(gè)Replica Set包含若干個(gè)mongod instance,基礎(chǔ)命令是:mongod --replSet %SETNAME% --shardsvr,同屬一個(gè)Replica Set的instance都使用同一個(gè)%SETNAME%,比如一個(gè)名為“set1”的Replica Set中有三臺(tái)服務(wù)器,分別名為“server1”,“server2”,“server3”,則在這三臺(tái)服務(wù)器上需要分別運(yùn)行命令:
server1: mongod --replSet set1 --shardsvr
server2: mongod --replSet set1 --shardsvr
server2: mongod --replSet set1 --shardsvr
啟動(dòng)mongod包含多個(gè)參數(shù),這個(gè)可以通過命令:mongod --help來查詢,根據(jù)自己的需求修改,上面的為必要部分。
每個(gè)服務(wù)器都啟動(dòng)好mongod后,開始進(jìn)行Replica Sets的初始化。
初始化的方法有多種,以下介紹比較方便的兩種:
(1)initiate(cfg),其中cfg由用戶編寫;
(2)initiate->add;
3.然后是啟動(dòng)config serve;
4.最后是啟動(dòng)mongs;
以上就是MongoDB Replica Sets和Auto Sharding配置的簡(jiǎn)單過程,本文就介紹到這里,希望本次的介紹能夠?qū)δ兴斋@!
【編輯推薦】




















