簡體   English   中英

javascript中的節點js / MongoDB副本集數組

[英]Node js / MongoDB replica set array in javascript

警告:我是新手程序員(更多的是sysadmin)。 我們得到了一個使用MongoDB的節點js應用程序。 據我所知,mongo.js文件使用的是mongojs和monq java類。 它只設置了一個MongoDB,我正在嘗試設置一個新的HA環境來使用副本集。 以下是他們提供的內容:

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;

現在對於副本集,根據本文 ,我需要進行以下更改:

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

我不完全確定在那之后我需要做什么。 我猜我必須為副本集的每個成員創建一個包含主機名和端口號的數組(setup是primary,secondary,arbiter),例如:

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

我將如何檢測哪個節點是主節點? 此外,如果主要失敗,我將不得不重新啟動節點js應用程序(永遠使用)?

我找到了答案,因為它調用的是MongoDB的URI http://docs.mongodb.org/manual/reference/connection-string/

應該是這樣的:

var client = monq('mongodb://server0:port0,server1:port1,server2:port2/[dbname]?replicaSet=[replicaSet Name]

第一個問題:只要你給連接字符串中的所有成員,mongojs驅動程序應該能夠找出哪一個是主要成員。 不需要自己搞清楚。

第二個問題:不,您不必重新啟動節點應用程序。 該集合中的其他成員將選出一個新的主要成員,盡管mongo需要時間來檢測失敗並進行選舉。

有關更多信息,請參閱副本集上mongodb文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM