關於分布式集群的概念有很多的解釋,我比較傾向於“分布式集群”為兩個概念,即,分布式是一個概念,集群是另一概念。
分布式是把一個整體系統分成多個部分,分別部署到不同的服務器上,然後由中心服務器統一控制,形成的一個對外來說為一個整體的系統。集群是把一個整體,整體的分別部署到多個服務器上的結果。
分布式和集群都是部署上的現象的描述,都涉及到多台服務器的部署,這是分布式和集群相同的地方,當然,其達到的效果也有很多一樣的,但是,他們卻是描述著兩種不同的現象。今天就講一下關於mongodb數據庫的分布式集群。
mongodb的分布式集群主要有主從復制,副本集,分片,還有一個就是分片和副本集的結合,本篇博客主要內容就是主從復制的配置,之後會相應博客描述其他的幾種分布式集群
//命令窗口輸入 //主服務器(local數據庫的slaves表存關聯信息) mongod --dbpath C:/data/master --port 10000--master //從服務器(local數據庫的sources表存關聯信息) mongod --dbpath C:/data/slave1 --port 10001--slave --source 192.168.24.131:10000 //添加從服務器 mongod --dbpathC:/data/slave2 --port 10002 --slave --source 192.168.24.131:20000
主從服務器的配置非常的簡單,只是在啟動服務器的時候添加一些參數就行了。
使用客戶端連接上主服務器,然後,插入一條數,此時,我們使用客戶端連接上從服務器時,可以查詢到剛才插入的數據。
//主服務器 mongo 127.0.0.1:27017/test //添加(增加集合和記錄) db.documentName.insert({name:"qingshan", age:25}); //查詢 db.documentName.find(); //從服務器 mongo 127.0.0.1:27017/test //可查詢到主服務器插入的數據 db.documentName.find();
讀寫分離:主節點數據讀寫,從節點數據只讀,從節點不能人為的插入數據
數據備份:從節點完整的備份了主數據庫數據缺點
主服務器發生故障時,一般都是人工介入,指定新的master