W tej chwili uczę się MongoDB i bawię się połączeniami zestawów replik. Lubię wnosić swój wkład na dwa sposoby, które wykorzystałem do łączenia się z bazą danych, które okazały się przydatne, jeśli nikomu to nie pomoże, przynajmniej będę miał miejsce, do którego można się odwołać w przyszłości (jestem pewien, że pójdę potrzebować tego w pewnym momencie) po pierwsze:
var connString = "mongodb://localhost:27029,localhost:27027,localhost:27028?connect=replicaSet";
var client = new MongoClient(connString);
var db = client.GetDatabase("test");
po drugie:
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);
Pierwszy pozwala mi na łączenie się z bazą danych przez serwery podane na liście serwerów. Dzięki temu sterownik automatycznie łączy się z nowym głównym węzłem w zestawie replik w przypadku awarii z głównym. Za pomocą drugiego przesyłam listę serwerów w zestawie replik, typ połączenia. Nazwa zestawu replik i konfiguracja dotyczy zapisu. Przy tych ustawieniach zmuszam sterownik do czekania na potwierdzenie zapisu z 3 serwerów w zestawie replik (WValue:3) i czekania maksymalnie 10 sekund na potwierdzenie zapisu.