Я хочу масштабировать чтение с помощью MongoDB. Для этого я могу настроить репликацию master-slave или набор реплик, но если я создам соединение с Mongo следующим образом:
from pymongo import ReplicaSetConnection, ReadPreference
from pymongo.errors import ConnectionFailure
try:
connection = ReplicaSetConnection("somehost:10000", replicaSet='myapp_repl',
read_preference=ReadPreference.SECONDARY)
except ConnectionFailure ...
or:
from pymongo.master_slave_connection import MasterSlaveConnection
from pymongo.errors import ConnectionFailure
try:
master = Connection(host="somehost", port=10000)
slave1 = Connection(host="somehost", port=10001)
slave2 = Connection(host="somehost", port=10002)
connection = MasterSlaveConnection(master, slaves=[slave1, slave2])
except ConnectionFailure ...
Драйвер pymongo будет распределять запросы между вторичными/подчиненными серверами набора реплик. В этой ситуации первичный/главный не будет обрабатывать запросы, поэтому, если у меня будет 2 узла, я не буду улучшать возможности чтения, потому что только 1 узел будет обрабатывать запросы. Как сделать так, чтобы запросы обрабатывались как ведущими, так и подчиненными (первичными и вторичными)?
connection=MasterSlaveConnection(master, slaves=[slave1, slave2, master)
? - person Randall Hunt   schedule 24.04.2012