ho creato il seguente set di repliche mongo utilizzando mongo cli:La replica di pymongo imposta il supporto della connessione client con failover automatico?
> config = { _id:"repset", members:[{_id:0,host:"192.168.0.1:27017"},{_id:1,host:"192.168.0.2:27017"},{_id:2,host:"192.168.0.3:27017"}]}
> rs.initiate(config);
Tutti i server Mongo funzionare correttamente.
>>> import pymongo
>>> from pymongo import MongoClient
>>> servers = ["192.168.0.1:27017", "192.168.0.2:27017", "192.168.0.3:27017"]
>>> MongoClient(servers)
>>> xc = MongoClient()
>>> print xc
MongoClient('localhost', 27017)
>>> print xc.database_names()
[u'test_repsets', u'local', u'admin', u'test']
Dopo aver ucciso il server MongoDB locali, mi mostra il collegamento errore di timeout:
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused
Sembra non v'è alcuna auto fail over, anche se ho definito i server MongoDB. Mi chiedo se le maniglie di pymongo falliscono automaticamente o come questa situazione viene gestita correttamente?
Grazie in anticipo.
Quale versione di pymongo stai usando? – ThrowsException
pymongo == 3.0.3 Penso di aver sbagliato qui: xc = MongoClient() dovrebbe essere xc = MongoClient (server). Quindi funziona bene. –