摘要:集群搭建方式主從復(fù)制目前官方已不推薦使用副本集的副本集不同于以往的主從模式。分片是一種可以水平擴(kuò)展的模式在數(shù)據(jù)量很大時(shí)特給力實(shí)際大規(guī)模應(yīng)用一般會(huì)采用這種架構(gòu)去構(gòu)建。
mongodb集群搭建方式 1.master-slave 主從復(fù)制
目前官方已不推薦使用
2.Replica Sets 副本集
MongoDB 的副本集不同于以往的主從模式。
在集群Master故障的時(shí)候,副本集可以自動(dòng)投票,選舉出新的Master,并引導(dǎo)其余的Slave服務(wù)器連接新的Master,而這個(gè)過程對于應(yīng)用是透明的。可以說MongoDB的副本集,是自帶故障轉(zhuǎn)移功能的主從復(fù)制。
Sharding cluster是一種可以水平擴(kuò)展的模式,在數(shù)據(jù)量很大時(shí)特給力,實(shí)際大規(guī)模應(yīng)用一般會(huì)采用這種架構(gòu)去構(gòu)建。sharding分片很好的解決了單臺(tái)服務(wù)器磁盤空間、內(nèi)存、cpu等硬件資源的限制問題,把數(shù)據(jù)水平拆分出去,降低單節(jié)點(diǎn)的訪問壓力。每個(gè)分片都是一個(gè)獨(dú)立的數(shù)據(jù)庫,所有的分片組合起來構(gòu)成一個(gè)邏輯上的完整的數(shù)據(jù)庫。因此,分片機(jī)制降低了每個(gè)分片的數(shù)據(jù)操作量及需要存儲(chǔ)的數(shù)據(jù)量,達(dá)到多臺(tái)服務(wù)器來應(yīng)對不斷增加的負(fù)載和數(shù)據(jù)的效果
docker-compose代碼
csrs1: image: mongo volumes: - /home/work/dbdata/mongo/cs/rs1:/data/db command: mongod --noauth --bind_ip_all --configsvr --replSet csrs --dbpath /data/db csrs2: image: mongo volumes: - /home/work/dbdata/mongo/cs/rs2:/data/db command: mongod --noauth --bind_ip_all --configsvr --replSet csrs --dbpath /data/db csrs3: image: mongo volumes: - /home/work/dbdata/mongo/cs/rs3:/data/db command: mongod --noauth --bind_ip_all --configsvr --replSet csrs --dbpath /data/db
集群節(jié)點(diǎn)互聯(lián)
// 進(jìn)入primary節(jié)點(diǎn)容器(注意一定要是primary節(jié)點(diǎn)), config server 默認(rèn)端口是27019 docker-compose exec csrs1 mongo --port 27019 // 初始化副本集 rs.initiate() // 將另外兩個(gè)節(jié)點(diǎn)加入到當(dāng)前的副本集 rs.add("csrs2:27019") rs.add("csrs3:27019") // 查看副本集狀態(tài) rs.status()2.shard server集群搭建
docker-compose代碼
shrs1: image: mongo volumes: - /home/work/dbdata/mongo/sh/rs1:/data/db command: mongod --noauth --bind_ip_all --dbpath /data/db --shardsvr --replSet shrs shrs2: image: mongo volumes: - /home/work/dbdata/mongo/sh/rs2:/data/db command: mongod --noauth --bind_ip_all --dbpath /data/db --shardsvr --replSet shrs shrs3: image: mongo volumes: - /home/work/dbdata/mongo/sh/rs3:/data/db command: mongod --noauth --bind_ip_all --dbpath /data/db --shardsvr --replSet shrs
集群節(jié)點(diǎn)互聯(lián)
// 進(jìn)入primary節(jié)點(diǎn)容器(注意一定要是primary節(jié)點(diǎn)), shard server 默認(rèn)端口是27018 docker-compose exec shrs1 mongo --port 27018 // 初始化副本集 rs.initiate() // 將另外兩個(gè)節(jié)點(diǎn)加入到當(dāng)前的副本集 rs.add("shrs2:27018") rs.add("shrs3:27018") // 查看副本集狀態(tài) rs.status()3.router mongos 集群搭建
docker-compose代碼
mongo: image: mongo command: mongos --noauth --bind_ip_all --configdb csrs/csrs1:27019,csrs2:27019,csrs3:27019
將mongos連接到shard set
// 進(jìn)入primary節(jié)點(diǎn)容器(注意一定要是primary節(jié)點(diǎn)), mongos 默認(rèn)端口是27017 docker-compose exec mongo mongo --port 27017 // 將另外兩個(gè)節(jié)點(diǎn)加入到當(dāng)前的副本集 sh.addShard("shrs1:27018") // 查看副本集狀態(tài) sh.status()3.mongo-express 圖形化界面安裝
docker-compose代碼
mongo-express: image: mongo-express restart: always ports: - 10081:8081
瀏覽器連接GUI客戶端
localhost:10081遇到的一些問題
mongo-express連接不上mongos, 啟動(dòng)mongos要加上--bind_ip_all, 否則就只能容器里面才能訪問mongos服務(wù)
添加其他節(jié)點(diǎn)添加不上, 注意一定要在primary節(jié)點(diǎn)添加其他節(jié)點(diǎn), 只有primary節(jié)點(diǎn)有權(quán)對集群狀態(tài)做出改變
當(dāng)shrad節(jié)點(diǎn)只剩下一個(gè)活著時(shí), 無法選出新的primary, 這是shard set不能提供服務(wù)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/19534.html
摘要:搭建分片分區(qū)集群環(huán)境安裝三臺(tái)機(jī)器關(guān)閉防火墻主節(jié)點(diǎn)副節(jié)點(diǎn)仲裁仲裁主節(jié)點(diǎn)副節(jié)點(diǎn)副節(jié)點(diǎn)仲裁主節(jié)點(diǎn)端口分配下載并且安裝所有版本二進(jìn)制文件自行下載改名分別在每臺(tái)機(jī)器建立六個(gè)目錄,因?yàn)椴淮鎯?chǔ)數(shù)據(jù),只需要建立日志文件目錄即可。 搭建 MongoDB分片(sharding) / 分區(qū) / 集群環(huán)境 1. 安裝 MongoDB 三臺(tái)機(jī)器 關(guān)閉防火墻 systemctl stop firewalld.se...
摘要:復(fù)制一份,命名為,修改文件內(nèi)容如下注意改為我們第一步創(chuàng)建的目錄,端口號(hào)改為這個(gè)隨意,只要該端口沒被占用即可,表示這是一個(gè)配置服務(wù)器,另外由于我們的配置服務(wù)器要做成備份集,所以要設(shè)置。 分片是指將數(shù)據(jù)拆分,拆分后存放在不同的機(jī)器上的過程,以此來降低單個(gè)服務(wù)器的壓力,同時(shí)也解決單個(gè)服務(wù)器硬盤空間不足的問題,讓我們可以用廉價(jià)的機(jī)器實(shí)現(xiàn)高性能的數(shù)據(jù)架構(gòu)。有的小伙伴不理解分片和副本集的差異,一言...
摘要:優(yōu)志愿張海鵬宋體背景宋體每年月下旬到月下旬期間是高考填志愿的高峰期,也是優(yōu)志愿后端面臨大流量高并發(fā)請求的業(yè)務(wù)高峰期。對于優(yōu)志愿讀多寫少的場景及其業(yè)務(wù)高峰期,用戶可以按需增刪節(jié)點(diǎn),更好地實(shí)現(xiàn)讀取性能的擴(kuò)展。 隨著用戶規(guī)模的增長,數(shù)據(jù)庫的壓力也在成倍增加。面對大流量、高并發(fā),UCloud MongoDB 做到了高效,并展現(xiàn)出了更好的性能體驗(yàn)。 —— 優(yōu)志愿 CTO 張海鵬 背景...
摘要:版本目前支持和,用戶可以根據(jù)需求選擇相應(yīng)的云數(shù)據(jù)庫版本。硬盤云數(shù)據(jù)庫的硬盤大小。云數(shù)據(jù)庫提供自動(dòng)備份和手動(dòng)備份兩種方式,防止數(shù)據(jù)丟失,避免誤操作帶來的風(fēng)險(xiǎn)。日志日志是用于記錄云數(shù)據(jù)庫操作事件的記錄文件。什么是云數(shù)據(jù)庫MongoDB?云數(shù)據(jù)庫簡介: 云數(shù)據(jù)庫MongoDB是基于成熟云計(jì)算技術(shù)的高可用、高性能的數(shù)據(jù)庫服務(wù),完全兼容MongoDB 協(xié)議,支持靈活部署,除副本集實(shí)例架構(gòu)外,云數(shù)據(jù)庫...
摘要:簡述為何要分片減少單機(jī)請求數(shù),降低單機(jī)負(fù)載,提高總負(fù)載減少單機(jī)的存儲(chǔ)空間,提高總存空間。就是用來存儲(chǔ)所有節(jié)點(diǎn)的配置信息每個(gè)的范圍在各的分布情況該集群中所有和的配置信息。 簡述 為何要分片 減少單機(jī)請求數(shù),降低單機(jī)負(fù)載,提高總負(fù)載 減少單機(jī)的存儲(chǔ)空間,提高總存空間。 showImg(http://static.oschina.net/uploads/space/2014/0201/1...
閱讀 2555·2021-09-24 10:29
閱讀 3831·2021-09-22 15:46
閱讀 2598·2021-09-04 16:41
閱讀 3006·2019-08-30 15:53
閱讀 1287·2019-08-30 14:24
閱讀 3083·2019-08-30 13:19
閱讀 2196·2019-08-29 14:17
閱讀 3548·2019-08-29 12:55