關於MongoDB分布式高可用叢集實現

來源:互聯網
上載者:User
一、環境準備

1.本例使用3台Linux主機,IP地址如下:


點擊(此處)摺疊或開啟 Server A: 192.168.1.231
Server B: 192.168.1.232
Server C: 192.168.1.233


2.根據需要,開啟相應 主機 防火牆的相關連接埠。本次需要用到3台主機,所以開啟這3台主機的以下連接埠:

點擊(此處)摺疊或開啟 -A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27018 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27019 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20000 -j ACCEPT


二、搭建分布式叢集


運用MongoDB的複製集(Replica Sets)+分區(Sharding)就能實現MongoDB分布式高可用的叢集。

分區(sharding)能夠增加更多的機器來應對不斷增加的負載和資料,也不影響應用。

複製集(Replica Sets)能確保每個分區節點都具有自動備份、自動故障恢複能力。

1.叢集的環境

架構圖:


主機設計:



2.配置Replica Sets

建立資料目錄:

點擊(此處)摺疊或開啟 mkdir -p /data/{shard1-1,shard2-1,config} #在serverA上
mkdir -p /data/{shard1-2,shard2-2,config} #在serverB上
mkdir -p /data/{shard1-3,shard2-3,config} #在serverC上
2.1 配置 shard1 Replica Sets


#在serverA上啟動shard1-1

點擊(此處)摺疊或開啟 ./mongod --fork --shardsvr --port 27018 --dbpath /data/shard1-1/ --logpath /data/shard1-1/shard1-1.log --logappend --replSet shard1 --directoryperdb


# 在 serverB 上啟動 shard1-2

點擊(此處)摺疊或開啟 ./mongod --fork --shardsvr --port 27018 --dbpath /data/shard1-2/ --logpath /data/shard1-2/shard1-2.log --logappend --replSet shard1 --directoryperdb
# 在 serverC 上啟動 shard1-3

點擊(此處)摺疊或開啟 ./mongod --fork --shardsvr --port 27018 --dbpath /data/shard1-3/ --logpath /data/shard1-3/shard1-3.log --logappend --replSet shard1 --directoryperdb
用 mongo 串連其中一台主機的 27018 連接埠的 mongod ,初始化複製集 shard1 :
./mongo --port 27018


點擊(此處)摺疊或開啟 >config={_id:'shard1',members:[
{_id:0,host:'192.168.1.231:27018',priority:2},
{_id:1,host:'192.168.1.232:27018',priority:1},
{_id:2,host:'192.168.1.233:27018',arbiterOnly:true}]
}

>rs.initiate(config)



2.2 配置shard2 的Replica Sets

 
#在serverA上啟動shard2-1

點擊(此處)摺疊或開啟 ./mongod --fork --shardsvr --port 27019 --dbpath /data/shard2-1/ --logpath /data/shard2-1/shard2-1.log --logappend --replSet shard2 --directoryperdb

# 在 serverB 上啟動 shard2-2

點擊(此處)摺疊或開啟 ./mongod --fork --shardsvr --port 27019 --dbpath /data/shard2-2/ --logpath /data/shard2-2/shard2-2.log --logappend --replSet shard2 --directoryperdb
# 在 serverC 上啟動 shard2-3

點擊(此處)摺疊或開啟 ./mongod --fork --shardsvr --port 27019 --dbpath /data/shard2-3/ --logpath /data/shard2-3/shard2-3.log --logappend --replSet shard2 --directoryperdb
用 mongo 串連其中一台主機 ( 建議在 ServerB 上 ) 的 27019 連接埠的 mongod ,初始化複製集 shard2 :
./ mongo --port 27019



點擊(此處)摺疊或開啟 >config={_id:'shard2',members:[
{_id:0,host:'192.168.1.231:27019',arbiterOnly:true},
{_id:1,host:'192.168.1.232:27019',priority:1},
{_id:2,host:'192.168.1.233:27019',priority:2}]
}

>rs.initiate(config)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.