新聞中心
Replica Sets+Sharding架構(gòu)如下:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、潤(rùn)州網(wǎng)站維護(hù)、網(wǎng)站推廣。
1,shard服務(wù)器:使用Replica Sets確保每個(gè)數(shù)據(jù)節(jié)點(diǎn)都具有備份、自動(dòng)容錯(cuò)轉(zhuǎn)移、自動(dòng)恢復(fù)的能力。
2,配置服務(wù)器:使用使用3個(gè)配置服務(wù)器確保元數(shù)據(jù)完整性
3,路由進(jìn)程:使用3個(gè)路由進(jìn)程實(shí)現(xiàn)平衡,提高客戶端接入性能,架構(gòu)如下
3個(gè)分片進(jìn)程:shard11,shard12,shard13組成一個(gè)副本集,提供Sharding中shard1的功能。
3個(gè)分片進(jìn)程:shard21,shard22,shard23組成一個(gè)副本集,提供Sharding中shard2的功能。
3個(gè)配置服務(wù)器進(jìn)程和3個(gè)路由器進(jìn)程
--------------------------------------------------------------------------------------------
現(xiàn)在我們開(kāi)始搭建整個(gè)架構(gòu)(因?yàn)闆](méi)那么多機(jī)器,我還是用本地的目錄來(lái)模擬機(jī)器)
主機(jī) | ip | 服務(wù)及端口 |
ServerA mongodb1 mongodb2 mongodb3 mongodb4 | 127.0.0.1 | mongod shard11:10000 mongod shard21:20000 mongod config 1:30000 mongos :40000 |
ServerB mongodb5 mongodb6 mongodb7 mongodb4 | 127.0.0.1 | mongod shard12:10001 mongod shard22:20001 mongod config 2:30001 mongos :40000 |
ServerC mongodb9 mongodb8 mongodb11 mongodb4 | 127.0.0.1 | mongod shard13:10002 mongod shard23:20002 mongod config 3:30002 mongos :40000 |
1,啟動(dòng)Shard1進(jìn)程并配置Replica Sets
啟動(dòng)mongod shard11進(jìn)程,副本集名稱:shard1
啟動(dòng)mongod shard12進(jìn)程,并設(shè)置副本集:shard1
啟動(dòng)mongod shard13進(jìn)程,并設(shè)置副本集:shard1
把這三個(gè)進(jìn)程配置成副本集,新開(kāi)一個(gè)cmd,用來(lái)執(zhí)行各種非啟動(dòng)命令,連接到上面三個(gè)進(jìn)程中的任何一個(gè),把他們配置成副本集,操作如下
2,啟動(dòng)Shard2進(jìn)程并配置Replica Sets
啟動(dòng)mongod shard21進(jìn)程,副本集名稱:shard2
啟動(dòng)mongod shard22進(jìn)程,并設(shè)置副本集:shard2
啟動(dòng)mongod shard23進(jìn)程,并設(shè)置副本集:shard2
把這三個(gè)進(jìn)程配置成副本集,操作如下
到此兩個(gè)副本集夠成的分片已經(jīng)配置完成,下面配置Config server和Route process
3,配置3個(gè)Config Server
4配置Route Process
chunk大小為1M,方便我們測(cè)試效果。
5配置分片的表和片鍵
我用的還是Friends庫(kù)中的FriendUser表來(lái)做分片,片鍵是_id,因?yàn)閏md寬度太小了添加分片的命令顯示不完全,我手動(dòng)把他們列出來(lái)
添加分片
db.runCommand({addshard:"shard1/127.0.0.1:10000,127.0.0.1:10001,127.0.0.1:10002"})
db.runCommand({addshard:"shard2/127.0.0.1:20000,127.0.0.1:20001,127.0.0.1:20002"})
到此整個(gè)構(gòu)架已經(jīng)配置完成了,我們來(lái)驗(yàn)證下配置的情況,我通過(guò)客戶端添加10000條數(shù)據(jù)到數(shù)據(jù)庫(kù)中
可以看到分片已經(jīng)執(zhí)行。
------------------------------------------------------------------------------------------------
現(xiàn)在做下容災(zāi)的測(cè)試,我停掉shard11,看看結(jié)果會(huì)如何。
打開(kāi)shard11的 cmd窗口,Ctrl+C停止進(jìn)程
查看下?tīng)顟B(tài)
狀態(tài)完好,我在插入20000條數(shù)據(jù),看看效果
可以看到依然可以運(yùn)行。
這里會(huì)出現(xiàn)這種情況:當(dāng)有三臺(tái)機(jī)器做副本集的時(shí)候,只能是一太服務(wù)器當(dāng)?shù)?,?dāng)有兩臺(tái)當(dāng)?shù)舻臅r(shí)候,第三臺(tái)不能由從庫(kù)變?yōu)橹鲙?kù)。
這里應(yīng)該注意副本集的選舉規(guī)則: 當(dāng)主庫(kù)當(dāng)?shù)魰r(shí),次節(jié)點(diǎn)將觸發(fā)選舉。 收到副本集大多數(shù)成員投票的***個(gè)節(jié)點(diǎn)將成為主節(jié)點(diǎn)。副本集選舉最重要的功能是副本集的大多數(shù)原始成員節(jié)點(diǎn)必須參與選舉才能成功。如果您的副本集包含三個(gè) 成員,有兩個(gè)或三個(gè)節(jié)點(diǎn)可以相互連接時(shí)該副本集可選出一個(gè)主節(jié)點(diǎn)。如果該副本集中有兩個(gè)節(jié)點(diǎn)脫機(jī),則剩余的一個(gè)節(jié)點(diǎn)仍將作為次節(jié)點(diǎn)。
【編輯推薦】
- MongoDB 2.0 正式版發(fā)布
- MongoDB 2.0新功能逐個(gè)看之Compact Command
- 主流NoSQL數(shù)據(jù)庫(kù)全方位評(píng)測(cè)之MongoDB
- 教你如何利用MySQL學(xué)習(xí)MongoDB
- 在Windows環(huán)境下MongoDB搭建和簡(jiǎn)單操作
網(wǎng)站標(biāo)題:MongoDB的ReplicaSets+Sharding架構(gòu)
瀏覽路徑:http://m.fisionsoft.com.cn/article/dpdgdoc.html


咨詢
建站咨詢
