使用副本集搭建MongoDB叢集
MongoDB的副本集,我的理解就是自帶故障轉移的主從複製。
叢集的入口還是主節點,資料也是從主節點分發,這個和MySQL都是一致的。
和MySQL Master-Slave不一樣的是,副本集記錄各個節點的心跳資訊。
一旦主節點不可用,其餘的節點會推舉一個新的主節點,進行故障轉移,而這些操作對於應用是透明的。
mongodb新建副本集的時候,從節點必須是空庫,沒有任何資料。
測試環境如下
192.168.25.128 主節點
192.168.25.129 從節點
192.168.25.130 從節點
配置檔案如下(三個節點都是同樣的配置)
dbpath=/home/lihuilin/Desktop/data
smallfiles=true
replSet=mvbox
其中replSet是叢集的名稱
三個節點啟動之後,在主節點輸入叢集配置
結果如下
檢視自己是否是主節點
檢視叢集狀態
使用JAVA程式測試MongoDB叢集
插入一條記錄
然後將主節點關機,模擬故障
原來129的從節點被選舉為新的主節點。
再次執行JAVA程式,
可以看到前端的JAVA程式不受影響.
參考:
http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html
http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html
http://www.w3cschool.cc/mongodb/mongodb-tutorial.html
叢集的入口還是主節點,資料也是從主節點分發,這個和MySQL都是一致的。
和MySQL Master-Slave不一樣的是,副本集記錄各個節點的心跳資訊。
一旦主節點不可用,其餘的節點會推舉一個新的主節點,進行故障轉移,而這些操作對於應用是透明的。
mongodb新建副本集的時候,從節點必須是空庫,沒有任何資料。
測試環境如下
192.168.25.128 主節點
192.168.25.129 從節點
192.168.25.130 從節點
配置檔案如下(三個節點都是同樣的配置)
dbpath=/home/lihuilin/Desktop/data
smallfiles=true
replSet=mvbox
其中replSet是叢集的名稱
三個節點啟動之後,在主節點輸入叢集配置
- config = { _id:"mvbox", members:[
- {_id:0,host:"192.168.25.128:27017"},
- {_id:1,host:"192.168.25.129:27017"},
- {_id:2,host:"192.168.25.130:27017"}]
- }
- rs.initiate(config);
檢視自己是否是主節點
檢視叢集狀態
使用JAVA程式測試MongoDB叢集
-
import java.util.*;
-
import com.mongodb.*;
-
-
public class MongoTest {
-
public static void main(String[] args) {
-
-
try {
-
List<ServerAddress> addresses = new ArrayList<ServerAddress>();
-
ServerAddress address1 = new ServerAddress("192.168.25.128" , 27017);
-
ServerAddress address2 = new ServerAddress("192.168.25.129" , 27017);
-
ServerAddress address3 = new ServerAddress("192.168.25.130" , 27017);
-
addresses.add(address1);
-
addresses.add(address2);
-
addresses.add(address3);
-
-
MongoClient client = new MongoClient(addresses);
-
DB db = client.getDB( "mvbox");
-
DBCollection coll = db.getCollection( "song");
-
-
BasicDBObject object = new BasicDBObject();
-
object.append( "s1", "test1" );
-
-
coll.insert(object);
-
-
DBCursor dbCursor = coll.find();
-
-
while (dbCursor.hasNext()) {
-
DBObject dbObject = dbCursor.next();
-
System. out.println(dbObject.toString());
-
}
-
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
-
}
-
- }
然後將主節點關機,模擬故障
原來129的從節點被選舉為新的主節點。
再次執行JAVA程式,
可以看到前端的JAVA程式不受影響.
參考:
http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html
http://www.cnblogs.com/huangxincheng/archive/2012/02/18/2356595.html
http://www.w3cschool.cc/mongodb/mongodb-tutorial.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1161835/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mongodb 4.0副本集搭建MongoDB
- MongoDB 6.0.3副本集搭建MongoDB
- 搭建高可用MongoDB叢集(二): 副本集MongoDB
- 使用Docker搭建MongoDB 5.0版本副本集叢集DockerMongoDB
- linux下Mongodb叢集搭建:分片+副本集LinuxMongoDB
- 【MongoDB】分片(sharding)+副本集(replSet)叢集搭建MongoDB
- MongoDB日常運維-04副本集搭建MongoDB運維
- Mongodb分散式叢集副本集+分片MongoDB分散式
- 搭建高可用MongoDB叢集(三):深入副本集內部機制MongoDB
- Mongodb副本集+分片叢集環境部署記錄MongoDB
- MongoDB健壯叢集——用副本集做分片MongoDB
- MongoDB 分片叢集搭建MongoDB
- Docker 搭建叢集 MongoDBDockerMongoDB
- 搭建MongoDB分片叢集MongoDB
- Mongodb3.0.5副本集搭建及spring和java連線副本集配置MongoDBSpringJava
- MongoDB 副本集搭建MongoDB
- MongoDB高可用叢集搭建MongoDB
- Mongodb主從複製/ 副本集/分片叢集介紹MongoDB
- 搭建高可用MongoDB叢集(一):配置MongoDBMongoDB
- mongodb 3.4 叢集搭建升級版 五臺叢集MongoDB
- MongoDB Sharding(二) -- 搭建分片叢集MongoDB
- 搭建高可用MongoDB叢集(四):分片MongoDB
- MongoDB 3.2.7 基於keyFile的認證在副本集+叢集分片中的使用MongoDB
- MongoDB日常運維-05副本集故障切換MongoDB運維
- MongoDB副本集replica set (二)--副本集環境搭建MongoDB
- 修改mongodb3.0副本集使用者密碼遇到的坑MongoDB密碼
- 在滴滴雲上搭建 MongoDB 叢集 (一):MongoDB
- mongodb叢集shard_replica的搭建方法MongoDB
- mongodb叢集搭建及配置安全認證MongoDB
- MongoDB 4.2副本集新增/刪除副本(一主一副一仲裁)MongoDB
- MongoDB 4.2副本集自動故障轉移(一主一副一仲裁)MongoDB
- 手把手教你搭建mongodb副本集MongoDB
- MongoDB 副本集的原理、搭建、應用MongoDB
- .NET Core+MongoDB叢集搭建與實戰MongoDB
- 使用docker 搭建rabbitmq 叢集DockerMQ
- 搭建 MongoDB分片(sharding) / 分割槽 / 叢集環境MongoDB
- 第六章 MongoDB副本集搭建MongoDB
- MongoDB 3.2.7 for rhel6.4 副本集-分片叢集部署MongoDB