Mongo 副本集负载管理
Mongo replica sets load management
目前我有两个使用 mongo 副本集的节点应用程序(1 个主节点和 6 个辅助节点)。目前,一个应用程序的读取查询会导致 mongo 负载并影响另一个应用程序的性能。因此,我想划分次要节点,以便 1 个应用程序使用主要成员和 4 个次要成员,而另一个应用程序使用主要成员和其他 2 个次要成员。我不希望一个应用程序的负载影响另一个应用程序。我如何实现相同的目标?
您可以为每个应用程序设置不同的标签,并根据定义的标签从 SECONDARY 成员中读取,例如:
app1--> db.collection.find({}).readPref( "secondary", [ { "app": "app1" } ] )
app2--> db.collection.find({}).readPref( "secondary", [ { "app": "app2" } ] )
你的replicaSet是否如下:
{
"_id" : "myrs",
"version" : 2,
"members" : [
{
"_id" : 0,
"host" : "host1:27017",
"tags" : {
"app": "app1"
}
}, {
"_id" : 1,
"host" : "host2:27017",
"tags" : {
"app": "app1"
}
}, {
"_id" : 2,
"host" : "host3:27017",
"tags" : {
"app": "app1"
}
}, {
"_id" : 3,
"host" : "host4:27017",
"tags" : {
"app": "app2"
}
}, {
"_id" : 4,
"host" : "host4:27017",
"tags" : {
"app": "app2"
}
}
]
}
如何添加标签:
conf = rs.conf();
conf.members[0].tags = { "app": "app1" };
conf.members[1].tags = { "app": "app1" };
conf.members[2].tags = { "app": "app2" };
conf.members[3].tags = { "app": "app2" };
conf.members[4].tags = { "app": "app2" };
rs.reconfig(conf);
目前我有两个使用 mongo 副本集的节点应用程序(1 个主节点和 6 个辅助节点)。目前,一个应用程序的读取查询会导致 mongo 负载并影响另一个应用程序的性能。因此,我想划分次要节点,以便 1 个应用程序使用主要成员和 4 个次要成员,而另一个应用程序使用主要成员和其他 2 个次要成员。我不希望一个应用程序的负载影响另一个应用程序。我如何实现相同的目标?
您可以为每个应用程序设置不同的标签,并根据定义的标签从 SECONDARY 成员中读取,例如:
app1--> db.collection.find({}).readPref( "secondary", [ { "app": "app1" } ] )
app2--> db.collection.find({}).readPref( "secondary", [ { "app": "app2" } ] )
你的replicaSet是否如下:
{
"_id" : "myrs",
"version" : 2,
"members" : [
{
"_id" : 0,
"host" : "host1:27017",
"tags" : {
"app": "app1"
}
}, {
"_id" : 1,
"host" : "host2:27017",
"tags" : {
"app": "app1"
}
}, {
"_id" : 2,
"host" : "host3:27017",
"tags" : {
"app": "app1"
}
}, {
"_id" : 3,
"host" : "host4:27017",
"tags" : {
"app": "app2"
}
}, {
"_id" : 4,
"host" : "host4:27017",
"tags" : {
"app": "app2"
}
}
]
}
如何添加标签:
conf = rs.conf();
conf.members[0].tags = { "app": "app1" };
conf.members[1].tags = { "app": "app1" };
conf.members[2].tags = { "app": "app2" };
conf.members[3].tags = { "app": "app2" };
conf.members[4].tags = { "app": "app2" };
rs.reconfig(conf);