1
我有一个包含2个服务器的复制组。在测试故障转移时,我关闭了主服务器。我希望所有的客户端都可以开始访问其他服务器。相反,他们一直试图击败主要和超时。中学从来没有选择自己的主要。在MongoDB中,我有一个2成员replicaset。一个倒下,没有任何东西可以连接
要么我错误地配置客户端,要么mongo副本集要求三台服务器进行任何故障切换。哪一个?这是我的配置。
var settings = new MongoClientSettings
{
Credentials = new[] { credential },
ConnectionMode = ConnectionMode.ReplicaSet,
WriteConcern = WriteConcern.WMajority,
WaitQueueTimeout = TimeSpan.FromMinutes(30),
MaxConnectionPoolSize = 3000
};
string[] hosts = ConfigurationManager.AppSettings["MongoServerIpsSemiColonSeparated"].Split(';');
var servers = hosts.Select(x => new MongoServerAddress(x)).ToList();
settings.Servers = servers;
settings.ReplicaSetName = ConfigurationManager.AppSettings["NameOfReplicaset"];
Client = new MongoClient(settings);
它是值得直接检查您的replicaset的状态,以查看故障转移是否有效 - 不要只相信客户端已经切换,如果可能的话。 –
@VinceBowdren Yup,做到了。剩下的服务器表示次要的,并且它不能连接到任何其他副本集成员。 – Nikhil