如果AWS的某个region出了故障,可以将其他region的集群promote,以进行读写操作。下面将演示如何操作
将这个从集群从global cluster中移除:
重新配置应用,将写操作转向这个集群的endpoint。当提升为主集群后,会把-co
去掉,例如原来的连接方式从demo-read-replica-cluster.cluster-ro-ch6r1ynatoqq.us-east-2.docdb.amazonaws.com:27017
变为demo-read-replica-cluster.cluster-ch6r1ynatoqq.us-east-2.docdb.amazonaws.com:27017
。
连接到这个集群,测试是否可以执行写操作:
mongo --quiet --ssl --host $clusterendpoint:27017 --sslCAFile rds-combined-ca-bundle.pem --username $docdbUser --password $docdbPass
var data=[];
for (var i=2000000; i<2000004; i++){
var doc = {
"_id": NumberLong(i),
"createDate": new Date()
};
data.push(doc);
}
db.getSiblingDB("sampledb").test.insertMany(data);
返回结果:
{
"acknowledged" : true,
"insertedIds" : [
NumberLong(2000000),
NumberLong(2000001),
NumberLong(2000002),
NumberLong(2000003)
]
}
从中可以读取刚插入的数据:
db.getSiblingDB("sampledb").test.find({"_id": NumberLong(2000000)}).pretty();
返回如下结果:
{
"_id" : NumberLong(2000000),
"createDate" : ISODate("2021-06-14T20:19:56.857Z")
}
如果此时对这个集群加入新的region,那么它会成为新的global cluster的主集群。