Ho implementato un set di repliche che sto utilizzando globalmente. Ho il mio maestro in Oregon, Stati Uniti e 4 secondari. California e Virginia, Francoforte e Sydney. Ho anche dei server web nelle stesse regioni. Quei server web si collegano a mongo utilizzando mangusta:Mangusta che non legge dal database secondario di 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);
mio problema è che il mio cliente ha una latenza più elevata al database a seconda di quanto lontano sono da padrone. La California ottiene 40ms mentre Sydney ottiene 400ms. Non capisco perché questo sta accadendo dal momento che dovrebbero leggere il database secondario nella loro regione.
Comprendo che le operazioni di scrittura devono essere eseguite sul primario ma anche se eseguo un rilevamento, non dovrebbe essere eseguito sul secondario regionale e restituire piuttosto rapidamente?
Mi rendo conto che ci sono alcune opzioni ridondanti in quella configurazione ma sto diventando disperata. Ho anche provato l'opzione "ReadPreference.NEAREST"
inutilmente.
Quale versione di mangusta utilizzi? – ThrowsException