前言
最近因為工作的原因,在學(xué)習(xí)使用mongodb數(shù)據(jù)庫,mongodb是最常用的nodql數(shù)據(jù)庫,在數(shù)據(jù)庫排名中已經(jīng)上升到了前六。這篇文章介紹如何搭建高可用的mongodb(分片+副本)集群,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹:
在搭建集群之前,需要首先了解幾個概念:路由,分片、副本集、配置服務(wù)器等。
相關(guān)概念
先來看一張圖:
從圖中可以看到有四個組件:mongos、config server、shard、replica set。
mongos,數(shù)據(jù)庫集群請求的入口,所有的請求都通過mongos進(jìn)行協(xié)調(diào),不需要在應(yīng)用程序添加一個路由選擇器,mongos自己就是一個請求分發(fā)中心,它負(fù)責(zé)把對應(yīng)的數(shù)據(jù)請求請求轉(zhuǎn)發(fā)到對應(yīng)的shard服務(wù)器上。在生產(chǎn)環(huán)境通常有多mongos作為請求的入口,防止其中一個掛掉所有的mongodb請求都沒有辦法操作。
config server,顧名思義為配置服務(wù)器,存儲所有數(shù)據(jù)庫元信息(路由、分片)的配置。mongos本身沒有物理存儲分片服務(wù)器和數(shù)據(jù)路由信息,只是緩存在內(nèi)存里,配置服務(wù)器則實(shí)際存儲這些數(shù)據(jù)。mongos第一次啟動或者關(guān)掉重啟就會從 config server 加載配置信息,以后如果配置服務(wù)器信息變化會通知到所有的 mongos 更新自己的狀態(tài),這樣 mongos 就能繼續(xù)準(zhǔn)確路由。在生產(chǎn)環(huán)境通常有多個 config server 配置服務(wù)器,因為它存儲了分片路由的元數(shù)據(jù),防止數(shù)據(jù)丟失!
shard,分片(sharding)是指將數(shù)據(jù)庫拆分,將其分散在不同的機(jī)器上的過程。將數(shù)據(jù)分散到不同的機(jī)器上,不需要功能強(qiáng)大的服務(wù)器就可以存儲更多的數(shù)據(jù)和處理更大的負(fù)載。基本思想就是將集合切成小塊,這些塊分散到若干片里,每個片只負(fù)責(zé)總數(shù)據(jù)的一部分,最后通過一個均衡器來對各個分片進(jìn)行均衡(數(shù)據(jù)遷移)。
replica set,中文翻譯副本集,其實(shí)就是shard的備份,防止shard掛掉之后數(shù)據(jù)丟失。復(fù)制提供了數(shù)據(jù)的冗余備份,并在多個服務(wù)器上存儲數(shù)據(jù)副本,提高了數(shù)據(jù)的可用性, 并可以保證數(shù)據(jù)的安全性。
仲裁者(Arbiter),是復(fù)制集中的一個MongoDB實(shí)例,它并不保存數(shù)據(jù)。仲裁節(jié)點(diǎn)使用最小的資源并且不要求硬件設(shè)備,不能將Arbiter部署在同一個數(shù)據(jù)集節(jié)點(diǎn)中,可以部署在其他應(yīng)用服務(wù)器或者監(jiān)視服務(wù)器中,也可部署在單獨(dú)的虛擬機(jī)中。為了確保復(fù)制集中有奇數(shù)的投票成員(包括primary),需要添加仲裁節(jié)點(diǎn)做為投票,否則primary不能運(yùn)行時不會自動切換primary。
簡單了解之后,我們可以這樣總結(jié)一下,應(yīng)用請求mongos來操作mongodb的增刪改查,配置服務(wù)器存儲數(shù)據(jù)庫元信息,并且和mongos做同步,數(shù)據(jù)最終存入在shard(分片)上,為了防止數(shù)據(jù)丟失同步在副本集中存儲了一份,仲裁在數(shù)據(jù)存儲到分片的時候決定存儲到哪個節(jié)點(diǎn)。
環(huán)境準(zhǔn)備
服務(wù)器規(guī)劃
服務(wù)器75 | 服務(wù)器84 | 服務(wù)器86 |
---|---|---|
mongos | mongos | mongos |
config server | config server | config server |
shard server1 主節(jié)點(diǎn) | shard server1 副節(jié)點(diǎn) | shard server1 仲裁 |
shard server2 仲裁 | shard server2 主節(jié)點(diǎn) | shard server2 副節(jié)點(diǎn) |
shard server3 副節(jié)點(diǎn) | shard server3 仲裁 | shard server3 主節(jié)點(diǎn) |
端口分配:
mongos:20000config:21000shard1:27001shard2:27002shard3:27003
集群搭建
1、安裝mongodb
#解壓tar -xzvf mongodb-linux-x86_64-3.4.6.tgz -C /usr/local/#改名mv mongodb-linux-x86_64-3.4.6 mongodb
分別在每臺機(jī)器建立conf、mongos、config、shard1、shard2、shard3六個目錄,因為mongos不存儲數(shù)據(jù),只需要建立日志文件目錄即可。
mkdir -p /usr/local/mongodb/confmkdir -p /usr/local/mongodb/mongos/logmkdir -p /usr/local/mongodb/config/datamkdir -p /usr/local/mongodb/config/logmkdir -p /usr/local/mongodb/shard1/datamkdir -p /usr/local/mongodb/shard1/logmkdir -p /usr/local/mongodb/shard2/datamkdir -p /usr/local/mongodb/shard2/logmkdir -p /usr/local/mongodb/shard3/datamkdir -p /usr/local/mongodb/shard3/log
配置環(huán)境變量
vim /etc/profile# 內(nèi)容export MONGODB_HOME=/usr/local/mongodbexport PATH=$MONGODB_HOME/bin:$PATH# 使立即生效source /etc/profile
2、config server配置服務(wù)器
mongodb3.4以后要求配置服務(wù)器也創(chuàng)建副本集,不然集群搭建不成功。
添加配置文件
vi /usr/local/mongodb/conf/config.conf## 配置文件內(nèi)容pidfilepath = /usr/local/mongodb/config/log/configsrv.piddbpath = /usr/local/mongodb/config/datalogpath = /usr/local/mongodb/config/log/congigsrv.loglogappend = true bind_ip = 0.0.0.0port = 21000fork = true #declare this is a config db of a cluster;configsvr = true#副本集名稱replSet=configs #設(shè)置最大連接數(shù)maxConns=20000
啟動三臺服務(wù)器的config server
mongod -f /usr/local/mongodb/conf/config.conf
登錄任意一臺配置服務(wù)器,初始化配置副本集
#連接mongo --port 21000#config變量config = {... _id : "configs",... members : [... {_id : 0, host : "192.168.0.75:21000" },... {_id : 1, host : "192.168.0.84:21000" },... {_id : 2, host : "192.168.0.86:21000" }... ]... }#初始化副本集rs.initiate(config)
其中,”_id” : “configs”應(yīng)與配置文件中配置的 replicaction.replSetName 一致,”members” 中的 “host” 為三個節(jié)點(diǎn)的 ip 和 port
3、配置分片副本集(三臺機(jī)器)
設(shè)置第一個分片副本集
配置文件
vi /usr/local/mongodb/conf/shard1.conf#配置文件內(nèi)容#―――――――――――――― 主站蜘蛛池模板: 成人精品视频99在线观看免费 | 欧美v在线 | 国产精品成av人在线视午夜片 | 久久国产精品无码网站 | 91视频8mav| 日韩美女亚洲99久久二区 | 亚洲福利在线播放 | 91高清视频在线观看 | 久久精品国产精品亚洲 | 色伊人 | 国产91在线视频 | 久久伦理电影 | 人成精品| 精品国产污网站污在线观看15 | 成人欧美一区二区三区黑人孕妇 | 日本性视频 | 成人黄色电影在线观看 | 黄色免费av | 亚洲国产精品精华液com | 黄色小视频在线免费观看 | 一区二区在线视频 | 久草热8精品视频在线观看 高清av一区 | 亚洲永久免费 | 中文字幕av一区二区 | 欧美在线视频不卡 | 欧美在线播放一区二区 | 成人精品视频在线观看 | 国产欧美亚洲精品 | 色综合天天| 在线观看亚洲大片短视频 | 91日日 | 在线观看国产视频 | 国产日韩精品视频 | 色综合国产 | 日韩大片 | 亚洲一区二区三区福利 | 久久青青 | 亚洲精品视频免费 | 日韩一区二区三区在线视频 | 婷婷av在线 | 91爱爱|