2013-10-29 61 views
3

警告:我是新手程序員(更多是sysadmin)。我們得到了一個使用MongoDB的節點js應用程序。從我所知道的情況來看,mongo.js文件使用了mongojs和monq java類。它只安裝了一個MongoDB,我試圖設置一個新的HA環境來使用副本集。下面是他們提供了什麼:javascript中的節點js/MongoDB副本集數組

var mongojs = require('mongojs'); 
var monq = require('monq'); 
var dbName = 'exampledb'; 
var db = mongojs(dbName, ['collections']); 
var client = monq('mongodb://127.0.0.1/exampledb', { w: 1 }); 

exports.db = db; 
exports.ObjectId = mongojs.ObjectId; 
exports.monqClient = client; 

現在的副本集,根據this article,我需要做如下改變:

var db = mongojs('replset0.com, replset1.com, replset2.com/mydb?slaveOK=true?', ['collections']); 

我不完全知道我需要做的那之後的路線。我猜我會創建將包含副本集的每個成員的主機名和端口#數組(設置爲一級,二級,仲裁者),如:

var replSet = new replSet(); 
var replSet[0] = "server0:port0" 
var replSet[1] = "server1.:port1" 
var replSet[2] = "server2.:port2" 

我怎麼會去關於檢測哪個節點是主節點?另外,如果主要失敗,我將不得不重新啓動節點js應用程序(永遠使用)?

回答

1

第一個問題:只要你給它所有成員的連接字符串中的mongojs司機應該能夠找出哪一個是主要的。不需要自己弄清楚。

第二個問題:不,您不必重新啓動節點應用程序。該組中的其他成員將選出一個新的小學,儘管mongo需要時間來發現失敗並進行選舉。請參閱mongodb docs on replica sets

相關問題