Zaimplementowałem zestaw replik, którego używam na całym świecie. Mam swojego mistrza w Oregon, USA i 4 Secondary. Kalifornia i Wirginia, Frankfurt i Sydney. Mam również serwery internetowe w tych samych regionach. Te serwery internetowe podłączenie do Mongo użyciu mongoose:Mongoose nie czyta z dodatkowej bazy Mongo
var mongoose = require("mongoose");
var dbUrl = "mongodb://***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017/exampleDb";
var dbOptions : {
"replSet": {
"rs_name": "exampleRepSet",
"readPreference": "ReadPreference.SECONDARY_PREFERRED",
"read_preference": "ReadPreference.SECONDARY_PREFERRED",
"w":0,
"slaveOk": true
}
}
mongoose.connect(dbUrl, dbOptions);
Moim problemem jest to, że mój klient mają większą latencję do bazy danych w zależności od tego, jak daleko są od mistrza. Kalifornia ma 40 ms, a Sydney 400 ms. Nie rozumiem, dlaczego tak się dzieje, ponieważ powinni oni czytać wtórną bazę danych w swoim regionie.
Rozumiem, że pisanie musi być zrobione pierwszemu, ale nawet jeśli wykonuję wyszukiwanie, to czy nie powinno to być zrobione na regionalnej drugorzędnej drukarce i szybko wrócić?
Zdaję sobie sprawę, że istnieje kilka zbędnych opcji w tej konfiguracji, ale jestem rozpaczliwy. Próbowałem też opcji "ReadPreference.NEAREST"
bezskutecznie.
Która wersja mangusta są uruchomione? – ThrowsException