Сообщает ли MongoDB о расположении Master

255
05 апреля 2018, 11:54

На сколько мне известно, запись ведется только через Master, а чтение возможно и из Slave. Однако встаёт такой вопрос: Если я подключился к Slave и знаю только его адрес (о других Master и Slave я ничего не знаю) и пытаюсь записать данные, то клиент MongoDB переключит меня на Master???

MongoClientSettings settings = new MongoClientSettings();
settings.Credential = MongoCredential.CreateCredential("collection1", "user", "p@$$w0rd");
settings.Server = new MongoServerAddress("192.168.1.100"); // Тут находится Slave
settings.ReplicaSetName = "myReplica"; //Реплика БД (Master<->Slave)
// Подключились
var client = new MongoClient(settings);
// Взяли Коллекцию
var db = client.GetDatabase("collection1");
//Найдем документ id=100
var filter = Builders<CacheDocument>.Filter.Gt<long>("id", 100);
//получим документ
CacheDocument document = collection.Find(filter).Limit(1).FirstOrDefault();

Тут всё пройдет без запинки, однако, что произойдет, если мы будем писать данные

collection.InsertOne(new CacheDocument(/*something*/) { /*something*/ });

Переключит ли MongoDB на Master или выдаст ошибку?

Answer 1

Отвечу на свой же вопрос:

Да! Если жив Master или жив Arbiter и есть кому назначать Master.

Любой из Slave в курсе где живёт Master и пересылает запросы добавления к нему.

READ ALSO
Медленная отрисовка DataGridView

Медленная отрисовка DataGridView

По событию загрузки формы выполняю следующий код

276
Сериализация: паттерн composite

Сериализация: паттерн composite

Как нужно записывать в xml-файл объекты класса? Я сделал это так, но при добавлении листа (Leaf) появляется исключение:

281
WPF и ASP.NET видео уроки на русском на C#

WPF и ASP.NET видео уроки на русском на C#

Посоветуйте хорошие видео уроки по WPF и ASPNET (С#) на русском

242