使用副本集搭建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
- linux下Mongodb叢集搭建:分片+副本集LinuxMongoDB
- 使用Docker搭建MongoDB 5.0版本副本集叢集DockerMongoDB
- MongoDB日常運維-04副本集搭建MongoDB運維
- Mongodb分散式叢集副本集+分片MongoDB分散式
- 搭建MongoDB分片叢集MongoDB
- MongoDB 分片叢集搭建MongoDB
- Docker 搭建叢集 MongoDBDockerMongoDB
- 搭建MongoDB副本集MongoDB
- MongoDB 副本集搭建MongoDB
- MongoDB日常運維-06副本集搭建錯誤彙總MongoDB運維
- MongoDB高可用叢集搭建MongoDB
- MongoDB Sharding(二) -- 搭建分片叢集MongoDB
- MongoDB副本集replica set (二)--副本集環境搭建MongoDB
- MongoDB日常運維-05副本集故障切換MongoDB運維
- 在滴滴雲上搭建 MongoDB 叢集 (一):MongoDB
- mongodb叢集shard_replica的搭建方法MongoDB
- MongoDB 4.2副本集新增/刪除副本(一主一副一仲裁)MongoDB
- 手把手教你搭建mongodb副本集MongoDB
- .NET Core+MongoDB叢集搭建與實戰MongoDB
- MongoDB 4.2副本集自動故障轉移(一主一副一仲裁)MongoDB
- MongoDB叢集同步MongoDB
- 第六章 MongoDB副本集搭建MongoDB
- 使用docker 搭建rabbitmq 叢集DockerMQ
- MongoDB副本集MongoDB
- MongoDB叢集搭建(包括隱藏節點,仲裁節點)MongoDB
- 搭建zookeeper叢集(偽叢集)
- 單機Linux下搭建MongoDB副本集-三節點LinuxMongoDB
- MongoDB 4.2分片叢集搭建及與3.4分片叢集搭建時的一些異同MongoDB
- MongoDB部署副本集MongoDB
- MongoDB 副本集管理MongoDB
- zookeeper叢集及kafka叢集搭建Kafka
- mongodb 分片叢集設定MongoDB
- MongoDB分片叢集常用操作MongoDB
- Elasticsearch使用系列-Docker搭建Elasticsearch叢集ElasticsearchDocker
- 使用containerd搭建MinIO叢集服務AI
- Redis叢集搭建與簡單使用Redis
- 使用Kubeadm搭建高可用Kubernetes叢集