Mongodb分布式集群搭建
https://www.cnblogs.com/littleatp/p/8563273.html
mongodb配置主從模式
在大數(shù)據(jù)的時(shí)代,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫要能更高的服務(wù)必須要解決高并發(fā)讀寫、海量數(shù)據(jù)高效存儲(chǔ)、高可擴(kuò)展性和高可用性這些難題。不過就是因?yàn)檫@些問題Nosql誕生了
NOSQL有這些優(yōu)勢(shì):
大數(shù)據(jù)量,可以通過廉價(jià)服務(wù)器存儲(chǔ)大量的數(shù)據(jù),輕松擺脫傳統(tǒng)mysql單表存儲(chǔ)量級(jí)限制。
高擴(kuò)展性,Nosql去掉了關(guān)系數(shù)據(jù)庫的關(guān)系型特性,很容易橫向擴(kuò)展,擺脫了以往老是縱向擴(kuò)展的詬病。
高性能,Nosql通過簡(jiǎn)單的key-value方式獲取數(shù)據(jù),非常快速。還有NoSQL的Cache是記錄級(jí)的,是一種細(xì)粒度的Cache,所以NoSQL在這個(gè)層面上來說就要性能高很多。
靈活的數(shù)據(jù)模型,NoSQL無需事先為要存儲(chǔ)的數(shù)據(jù)建立字段,隨時(shí)可以存儲(chǔ)自定義的數(shù)據(jù)格式。而在關(guān)系數(shù)據(jù)庫里,增刪字段是一件非常麻煩的事情。如果是非常大數(shù)據(jù)量的表,增加字段簡(jiǎn)直就是一個(gè)噩夢(mèng)。
高可用,NoSQL在不太影響性能的情況,就可以方便的實(shí)現(xiàn)高可用的架構(gòu)。比如mongodb通過mongos、mongo分片就可以快速配置出高可用配置。
?
主從模式(官方不建議使用)。使用mysql數(shù)據(jù)庫時(shí)大家廣泛用到,采用雙機(jī)備份后主節(jié)點(diǎn)掛掉了后從節(jié)點(diǎn)可以接替主機(jī)繼續(xù)服務(wù)。所以這種模式比單節(jié)點(diǎn)的高可用性要好很多
mongoDB副本集的架構(gòu)圖
由圖可以看到客戶端連接到整個(gè)副本集,不關(guān)心具體哪一臺(tái)機(jī)器是否掛掉。主服務(wù)器負(fù)責(zé)整個(gè)副本集的讀寫,副本集定期同步數(shù)據(jù)備份,一但主節(jié)點(diǎn)掛掉,副本節(jié)點(diǎn)就會(huì)選舉一個(gè)新的主服務(wù)器,這一切對(duì)于應(yīng)用服務(wù)器不需要關(guān)心。我們看一下主服務(wù)器掛掉后的架構(gòu):
官方推薦的副本集機(jī)器數(shù)量為至少3個(gè),那我們也按照這個(gè)數(shù)量配置測(cè)試。
1、準(zhǔn)備兩臺(tái)機(jī)器?192.168.1.136、192.168.1.137、192.168.1.138。 192.168.1.136 當(dāng)作副本集主節(jié)點(diǎn),192.168.1.137、192.168.1.138作為副本集副本節(jié)點(diǎn)。
2、分別在每臺(tái)機(jī)器上建立mongodb副本集測(cè)試文件夾
#存放整個(gè)mongodb文件
mkdir?-p?/data/mongodbtest/replset #存放mongodb數(shù)據(jù)文件 mkdir?-p?/data/mongodbtest/replset/data #進(jìn)入mongodb文件夾 cd??/data/mongodbtest 3、下載mongodb的安裝程序包 wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz 注意linux生產(chǎn)環(huán)境不能安裝32位的mongodb,因?yàn)?2位受限于操作系統(tǒng)最大2G的文件限制。 #解壓下載的壓縮包? tar?xvzf mongodb-linux-x86_64-2.4.8.tgz 4、分別在每臺(tái)機(jī)器上啟動(dòng)mongodb /data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongod??--dbpath?/data/mongodbtest/replset/data???--replSet repset 可以看到控制臺(tái)上顯示副本集還沒有配置初始化信息。 5、初始化副本集 在三臺(tái)機(jī)器上任意一臺(tái)機(jī)器登陸mongodb /data/mongodbtest/mongodb-linux-x86_64-2.4.8/bin/mongo #使用admin數(shù)據(jù)庫 use admin #定義副本集配置變量,這里的 _id:”repset” 和上面命令參數(shù)“ –replSet?repset” 要保持一樣。 config = { _id:"repset", members:[ ... {_id:0,host:"192.168.1.136:27017"}, ... {_id:1,host:"192.168.1.137:27017"}, ... {_id:2,host:"192.168.1.138:27017"}] ... } { ????????"_id" : "repset", ????????"members" : [ ????????????????{ ????????????????????????"_id" : 0, ????????????????????????"host" : "192.168.1.136:27017" ????????????????}, ????????????????{ ????????????????????????"_id" : 1, ????????????????????????"host" : "192.168.1.137:27017" ????????????????}, ????????????????{ ????????????????????????"_id" : 2, ????????????????????????"host" : "192.168.1.138:27017" ????????????????} ????????] } #初始化副本集配置 rs.initiate(config); 6、測(cè)試副本集數(shù)據(jù)復(fù)制功能 https://www.cnblogs.com/yujon/p/6128824.html?
轉(zhuǎn)載于:https://www.cnblogs.com/tan-chao/p/10996562.html
總結(jié)
以上是生活随笔為你收集整理的Mongodb分布式集群搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。