MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

C# MongoDb Connect to Replica Set Problem

In diesem Moment lerne ich MongoDB und spiele mit Replica-Set-Verbindungen herum. Ich trage gerne mit 2 Möglichkeiten bei, die ich verwendet habe, um eine Verbindung zur Datenbank herzustellen, die ich als nützlich empfand, wenn es niemandem hilft, werde ich zumindest einen Ort haben, auf den ich mich in Zukunft beziehen kann (ich bin sicher, ich werde es tun um es irgendwann zu brauchen) zuerst:

var connString = "mongodb://localhost:27029,localhost:27027,localhost:27028?connect=replicaSet";
var client = new MongoClient(connString);
var db = client.GetDatabase("test");

zweitens:

var settings = new MongoClientSettings
{
   Servers = new[]
   {
      new MongoServerAddress("localhost", 27027),
      new MongoServerAddress("localhost", 27028),
      new MongoServerAddress("localhost", 27029)
   },
   ConnectionMode = ConnectionMode.Automatic,
   ReplicaSetName = "m101",
   WriteConcern = new WriteConcern(WriteConcern.WValue.Parse("3"),wTimeout:TimeSpan.Parse("10"))
};
var client = new MongoClient(settings);

Die erste erlaubt mir, mich über die in der Serverliste angegebenen Server mit der Datenbank zu verbinden. Dadurch kann sich der Treiber im Falle eines Ausfalls mit dem Prinzipal automatisch mit dem neuen Hauptknoten im Replikatsatz verbinden. Mit dem zweiten sende ich der Liste der Server im Replikatsatz den Verbindungstyp. Der Name des Replikatsatzes und die Konfiguration des Schreibvorgangs. Mit diesen Einstellungen zwinge ich den Treiber, auf eine Bestätigung des Schreibens von den 3 Servern im Replikatsatz (WValue:3) zu warten und höchstens 10 Sekunden auf die Bestätigung des Schreibens zu warten.