前言
最近因為工作的原因,在學習使用mongodb數據庫,mongodb是最常用的nodql數據庫,在數據庫排名中已經上升到了前六。這篇文章介紹如何搭建高可用的mongodb(分片+副本)集群,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹:
在搭建集群之前,需要首先了解幾個概念:路由,分片、副本集、配置服務器等。
相關概念
先來看一張圖:
從圖中可以看到有四個組件:mongos、config server、shard、replica set。
mongos,數據庫集群請求的入口,所有的請求都通過mongos進行協調,不需要在應用程序添加一個路由選擇器,mongos自己就是一個請求分發中心,它負責把對應的數據請求請求轉發到對應的shard服務器上。在生產環境通常有多mongos作為請求的入口,防止其中一個掛掉所有的mongodb請求都沒有辦法操作。
config server,顧名思義為配置服務器,存儲所有數據庫元信息(路由、分片)的配置。mongos本身沒有物理存儲分片服務器和數據路由信息,只是緩存在內存里,配置服務器則實際存儲這些數據。mongos第一次啟動或者關掉重啟就會從 config server 加載配置信息,以后如果配置服務器信息變化會通知到所有的 mongos 更新自己的狀態,這樣 mongos 就能繼續準確路由。在生產環境通常有多個 config server 配置服務器,因為它存儲了分片路由的元數據,防止數據丟失!
shard,分片(sharding)是指將數據庫拆分,將其分散在不同的機器上的過程。將數據分散到不同的機器上,不需要功能強大的服務器就可以存儲更多的數據和處理更大的負載?;舅枷刖褪菍⒓锨谐尚K,這些塊分散到若干片里,每個片只負責總數據的一部分,最后通過一個均衡器來對各個分片進行均衡(數據遷移)。
replica set,中文翻譯副本集,其實就是shard的備份,防止shard掛掉之后數據丟失。復制提供了數據的冗余備份,并在多個服務器上存儲數據副本,提高了數據的可用性, 并可以保證數據的安全性。
仲裁者(Arbiter),是復制集中的一個MongoDB實例,它并不保存數據。仲裁節點使用最小的資源并且不要求硬件設備,不能將Arbiter部署在同一個數據集節點中,可以部署在其他應用服務器或者監視服務器中,也可部署在單獨的虛擬機中。為了確保復制集中有奇數的投票成員(包括primary),需要添加仲裁節點做為投票,否則primary不能運行時不會自動切換primary。
簡單了解之后,我們可以這樣總結一下,應用請求mongos來操作mongodb的增刪改查,配置服務器存儲數據庫元信息,并且和mongos做同步,數據最終存入在shard(分片)上,為了防止數據丟失同步在副本集中存儲了一份,仲裁在數據存儲到分片的時候決定存儲到哪個節點。
環境準備
服務器規劃
服務器75 | 服務器84 | 服務器86 |
---|---|---|
mongos | mongos | mongos |
config server | config server | config server |
shard server1 主節點 | shard server1 副節點 | shard server1 仲裁 |
shard server2 仲裁 | shard server2 主節點 | shard server2 副節點 |
shard server3 副節點 | shard server3 仲裁 | shard server3 主節點 |
端口分配:
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
分別在每臺機器建立conf、mongos、config、shard1、shard2、shard3六個目錄,因為mongos不存儲數據,只需要建立日志文件目錄即可。
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
配置環境變量
vim /etc/profile# 內容export MONGODB_HOME=/usr/local/mongodbexport PATH=$MONGODB_HOME/bin:$PATH# 使立即生效source /etc/profile
2、config server配置服務器
mongodb3.4以后要求配置服務器也創建副本集,不然集群搭建不成功。
添加配置文件
vi /usr/local/mongodb/conf/config.conf## 配置文件內容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 #設置最大連接數maxConns=20000
啟動三臺服務器的config server
mongod -f /usr/local/mongodb/conf/config.conf
登錄任意一臺配置服務器,初始化配置副本集
#連接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”應與配置文件中配置的 replicaction.replSetName 一致,”members” 中的 “host” 為三個節點的 ip 和 port
3、配置分片副本集(三臺機器)
設置第一個分片副本集
配置文件
vi /usr/local/mongodb/conf/shard1.conf#配置文件內容#――――――――――――――亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb 在线国产精品视频| 午夜精品一区二区三区在线播放| 亚洲人成电影网站色…| 国产精品视频yy9099| 欧美午夜精品久久久久久久| 亚洲人成亚洲人成在线观看| 亚洲精品国精品久久99热一| 91在线免费看网站| **欧美日韩vr在线| 久久伊人精品天天| 日韩欧美在线播放| 色爱精品视频一区| 亚洲欧美制服另类日韩| 国产精品久久久久99| 在线视频欧美日韩| 不卡毛片在线看| 久久久亚洲精品视频| 欧美日韩免费观看中文| 国产日韩av在线播放| 一区二区三区国产在线观看| 日韩亚洲欧美中文高清在线| 国产91成人在在线播放| 日韩在线观看免费高清完整版| 92看片淫黄大片看国产片| 欧美激情精品久久久久久免费印度| 亲爱的老师9免费观看全集电视剧| 国产精品白嫩初高中害羞小美女| 久久久精品影院| 不卡av日日日| 中文字幕欧美视频在线| 国产亚洲精品美女久久久久| 伦伦影院午夜日韩欧美限制| 精品福利在线视频| 欧美精品一区二区三区国产精品| 久久综合电影一区| 亚洲精品国产品国语在线| 91免费福利视频| 精品视频在线播放免| 久久久久久午夜| 日韩av资源在线播放| 国产亚洲一区二区精品| 在线日韩日本国产亚洲| 国产精品一区久久久| 国产精品日韩一区| 欧美大尺度电影在线观看| 亚洲欧美激情在线视频| 66m—66摸成人免费视频| 亚洲精品久久久久国产| 日韩精品黄色网| 裸体女人亚洲精品一区| 国产香蕉97碰碰久久人人| 九九精品视频在线观看| 国产国产精品人在线视| 日韩欧美第一页| 91老司机精品视频| 97人人爽人人喊人人模波多| 亚洲丁香久久久| 久久久亚洲网站| 久久久久久久久久久成人| 久久久久久久国产| 国产精品美女www| 亚洲人成在线观看网站高清| 国产精品极品尤物在线观看| 久久成人在线视频| 国产美女高潮久久白浆| 久久国产精品久久精品| 欧美超级免费视 在线| 亚洲国产精久久久久久久| 国产精品尤物福利片在线观看| 精品久久久久久中文字幕一区奶水| 成人欧美一区二区三区在线| 成人午夜在线影院| 伊人亚洲福利一区二区三区| 国产97色在线|日韩| 高清一区二区三区日本久| 国产精品xxx视频| 日本精品一区二区三区在线播放视频| 国产精品第七十二页| 亚洲成人av在线| 日韩av三级在线观看| 中文字幕亚洲欧美一区二区三区| 69**夜色精品国产69乱| 伊人成人开心激情综合网| 国产精品69久久| 51视频国产精品一区二区| 成人亚洲激情网| 欧美在线视频观看免费网站| 亚洲欧美中文日韩v在线观看| 亚洲在线第一页| 国产一区玩具在线观看| 欧美成人免费在线视频| 啪一啪鲁一鲁2019在线视频| 国产精品美女免费看| 国产亚洲一级高清| 都市激情亚洲色图| 大量国产精品视频| 久久伊人免费视频| 91精品视频在线| 51精品国产黑色丝袜高跟鞋| 精品久久久久久中文字幕| 国产综合在线观看视频| 91精品国产777在线观看| www.日韩.com| 国产精品你懂得| 色爱av美腿丝袜综合粉嫩av| 亚洲第一网站免费视频| www.日本久久久久com.| 久久琪琪电影院| 欧美日本国产在线| 久久综合免费视频| 亚洲欧美日韩久久久久久| 国产亚洲人成a一在线v站| 伊人久久综合97精品| 国产精品天天狠天天看| 神马久久久久久| 91地址最新发布| 亚洲国产成人爱av在线播放| 精品视频偷偷看在线观看| 一区二区三区动漫| 91精品国产高清自在线| 精品亚洲va在线va天堂资源站| 成人免费网视频| 亚洲电影免费观看高清完整版在线观看| 亚洲视频日韩精品| 欧美贵妇videos办公室| 国产精品va在线播放我和闺蜜| 性欧美激情精品| 91黑丝在线观看| 国产精品亚洲第一区| 日韩经典中文字幕在线观看| 精品调教chinesegay| 97国产精品免费视频| 大量国产精品视频| 久久精品视频99| 亚洲精品美女久久久| 亚洲欧美日韩中文视频| 伊人久久久久久久久久| 少妇精69xxtheporn| 456国产精品| 中文国产成人精品久久一| 国产欧美日韩精品丝袜高跟鞋| 中文字幕av一区二区三区谷原希美| 国产一区二区免费| 黑人与娇小精品av专区| 日韩高清电影好看的电视剧电影| 欧美精品激情在线观看| 欧美日韩国产成人高清视频| 亚洲欧美三级在线| 欧美在线激情网| 日韩欧美精品在线观看| 国产精品夜色7777狼人| 亚洲国产成人精品久久| 亚洲欧美色婷婷| 欧美黑人性生活视频| 68精品久久久久久欧美| 久久精品国产电影| 色与欲影视天天看综合网| 一本色道久久综合狠狠躁篇怎么玩| 超碰日本道色综合久久综合| 欧美日韩在线视频一区| 日韩欧美极品在线观看| 欧美激情亚洲视频| 97国产suv精品一区二区62| 成人黄色在线观看|