mongodb中的副本集使用,本机测试【使用python】!
当mongodb服务器是配置成replica set模式时,那么,驱动python端,改作出什么样的代码兼容(单击模式和replica set模式)
翻看pymongo1.9的API中,可知,连接上后端的replica set服务器集,Connection和ReplicaSetConnection都可以。
提供测试代码:
1 import time 2 from pymongo import ReplicaSetConnection 3 # [u'morton.local:27019', 'morton.local:27017', u'morton.local:27018'] 4 conn = ReplicaSetConnection( 5 "localhost:27017,localhost:27018,localhost:27019", 6 replicaSet="gameSet", 7 read_preference=2, safe=True) 8 print conn 9 print conn.primary 10 print conn.seeds 11 print conn.secondaries 12 print conn.read_preference 13 print conn.server_info() 14 15 for i in xrange(1000): 16 conn.xxoo.xo.insert({"name":"GOODODOO" + str(i)}) 17 time.sleep(2) 18 print conn.primary 19 print conn.seeds 20 print conn.secondaries 21 print conn.read_preference
【写操作】加上time.sleep()是方便调试,比如尝试各种后端replica set节点断开,重连接的情况。
1.当从节点断开时,程序依旧运行良好,后端由于某个非主节点断开,会进行一次选举,选出新的主节点
2.当主节点断开时,程序抛出异常AutoConnection,说明,写操作时在主节点上进行的
【读操作】,主节点断开后,程序依旧运行,说明,读操作是自动连接到replica set的从节点上的
1 for i in xrange(10000): 2 conn.xxoo.xo.find({}) 3 time.sleep(2) 4 print conn.primary 5 print conn.seeds 6 print conn.secondaries 7 print conn.read_preference