自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MongoDB的Replica Sets+Sharding架構(gòu)

數(shù)據(jù)庫 其他數(shù)據(jù)庫 MongoDB
MongoDB的Sharding機(jī)制解決了海量存儲和動態(tài)擴(kuò)容的問題,但離生產(chǎn)環(huán)境的高可靠,高可用還有距離,Sharding在單點出現(xiàn)故障時就無能為力了。但是MongoDB的副本集卻可以很輕松的處理單點故障,所以就有了Replica Sets + Sharding的高可用,高安全的架構(gòu)。

Replica Sets+Sharding架構(gòu)如下:

      1,shard服務(wù)器:使用Replica Sets確保每個數(shù)據(jù)節(jié)點都具有備份、自動容錯轉(zhuǎn)移、自動恢復(fù)的能力。

      2,配置服務(wù)器:使用使用3個配置服務(wù)器確保元數(shù)據(jù)完整性

      3,路由進(jìn)程:使用3個路由進(jìn)程實現(xiàn)平衡,提高客戶端接入性能,架構(gòu)如下

3個分片進(jìn)程:shard11,shard12,shard13組成一個副本集,提供Sharding中shard1的功能。

3個分片進(jìn)程:shard21,shard22,shard23組成一個副本集,提供Sharding中shard2的功能。

3個配置服務(wù)器進(jìn)程和3個路由器進(jìn)程

--------------------------------------------------------------------------------------------

現(xiàn)在我們開始搭建整個架構(gòu)(因為沒那么多機(jī)器,我還是用本地的目錄來模擬機(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,啟動Shard1進(jìn)程并配置Replica Sets

 啟動mongod shard11進(jìn)程,副本集名稱:shard1

啟動mongod shard12進(jìn)程,并設(shè)置副本集:shard1

啟動mongod shard13進(jìn)程,并設(shè)置副本集:shard1

  把這三個進(jìn)程配置成副本集,新開一個cmd,用來執(zhí)行各種非啟動命令,連接到上面三個進(jìn)程中的任何一個,把他們配置成副本集,操作如下

 

2,啟動Shard2進(jìn)程并配置Replica Sets

啟動mongod shard21進(jìn)程,副本集名稱:shard2

啟動mongod shard22進(jìn)程,并設(shè)置副本集:shard2

啟動mongod shard23進(jìn)程,并設(shè)置副本集:shard2

把這三個進(jìn)程配置成副本集,操作如下

 

到此兩個副本集夠成的分片已經(jīng)配置完成,下面配置Config server和Route process

3,配置3個Config Server

 

4配置Route Process

chunk大小為1M,方便我們測試效果。

5配置分片的表和片鍵

我用的還是Friends庫中的FriendUser表來做分片,片鍵是_id,因為cmd寬度太小了添加分片的命令顯示不完全,我手動把他們列出來

   添加分片

    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òu)架已經(jīng)配置完成了,我們來驗證下配置的情況,我通過客戶端添加10000條數(shù)據(jù)到數(shù)據(jù)庫中

可以看到分片已經(jīng)執(zhí)行。

------------------------------------------------------------------------------------------------

現(xiàn)在做下容災(zāi)的測試,我停掉shard11,看看結(jié)果會如何。

打開shard11的 cmd窗口,Ctrl+C停止進(jìn)程

查看下狀態(tài)

狀態(tài)完好,我在插入20000條數(shù)據(jù),看看效果

可以看到依然可以運行。

這里會出現(xiàn)這種情況:當(dāng)有三臺機(jī)器做副本集的時候,只能是一太服務(wù)器當(dāng)?shù)?,?dāng)有兩臺當(dāng)?shù)舻臅r候,第三臺不能由從庫變?yōu)橹鲙臁?/p>

這里應(yīng)該注意副本集的選舉規(guī)則: 當(dāng)主庫當(dāng)?shù)魰r,次節(jié)點將觸發(fā)選舉。 收到副本集大多數(shù)成員投票的***個節(jié)點將成為主節(jié)點。副本集選舉最重要的功能是副本集的大多數(shù)原始成員節(jié)點必須參與選舉才能成功。如果您的副本集包含三個 成員,有兩個或三個節(jié)點可以相互連接時該副本集可選出一個主節(jié)點。如果該副本集中有兩個節(jié)點脫機(jī),則剩余的一個節(jié)點仍將作為次節(jié)點。

【編輯推薦】

  1. MongoDB 2.0 正式版發(fā)布
  2. MongoDB 2.0新功能逐個看之Compact Command
  3. 主流NoSQL數(shù)據(jù)庫全方位評測之MongoDB
  4. 教你如何利用MySQL學(xué)習(xí)MongoDB
  5. 在Windows環(huán)境下MongoDB搭建和簡單操作

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2013-12-02 11:00:27

MongoDB

2011-08-24 18:19:01

2013-11-28 09:48:55

MongoDBSharding分片

2013-11-25 10:45:04

MongoDB

2014-03-28 09:35:11

MongoDBSharding

2011-07-28 16:06:13

MongoDBAutoShardinReplication

2022-03-22 18:38:28

數(shù)據(jù)架構(gòu)解析

2011-07-28 13:24:03

MongoDBAuto-shardi

2013-01-29 10:45:19

MongoDB

2024-05-20 09:51:53

MongoDB數(shù)據(jù)庫管理數(shù)據(jù)庫服務(wù)器

2017-04-17 13:34:42

Hyper-V rep虛擬機(jī)服務(wù)器

2017-04-07 10:56:57

Hyper-V repStorage Rep淘汰

2014-04-14 16:34:25

Hyper-V Rep

2012-10-17 11:23:50

Hyper-VReplica中小型企業(yè)

2014-04-14 16:55:05

Hyper-V Rep

2017-04-26 08:51:36

MongoDB集群實戰(zhàn)

2019-09-17 11:18:09

SQLMySQLJava

2023-07-24 09:00:00

數(shù)據(jù)庫MyCat

2022-05-16 08:50:23

數(shù)據(jù)脫加密器

2011-04-29 13:40:37

MongoDBCommand
點贊
收藏

51CTO技術(shù)棧公眾號