Mongos可以添加副本集,但无法连接

时间:2017-02-23 01:35:13

标签: mongodb sharding

我正在设置一个分片的mongo群集。我有两个副本集,每个副本集包含两个节点,一个由三个配置服务器组成的副本集,以及一个mongos实例。

我已经能够将副本集添加到mongos实例:

sh.addShard("rs1/shard-rs01-s01");

这将返回{“ok”:1},第二个副本集也是如此。

但是,当我尝试执行任何数据库操作(如db.test.insert(...))时,我收到此错误:

  

2017-02-23T01:17:28.599 + 0000 I ASIO [CatalogManagerReplacer]   连接到shard-RS01-S01:27017   2017-02-23T01:17:28.600 + 0000 I ASIO [CatalogManagerReplacer]   连接到config-01:27019   2017-02-23T01:17:28.603 + 0000 I ASIO [CatalogManagerReplacer]   已成功连接到config-01:27019   2017-02-23T01:17:48.600 + 0000 I ASIO [CatalogManagerReplacer]无法连接到shard-RS01-S01:27017 - ExceededTimeLimit:操作超时

我仔细检查了防火墙是否通过在所有系统上禁用它来阻止连接。值得一提的是,在包含mongos实例的节点上,我可以直接通过命令连接到副本集,就像使用此命令一样,无论防火墙状态如何:

mongo --host rs1/shard-rs01-s01:27017

所以我很确定它不是防火墙问题。有人有什么想法吗?

这是设置的分片图,如果它对任何能够提供帮助的人都有用......

mongos> db.runCommand("getShardMap")
{
    "map" : {
        "config" : "rs0/config-01:27019,config-02:27019,config-03:27019",
    "config-01:27019" : "rs0/config-01:27019,config-02:27019,config-03:27019",
    "config-02:27019" : "rs0/config-01:27019,config-02:27019,config-03:27019",
    "config-03:27019" : "rs0/config-01:27019,config-02:27019,config-03:27019",
    "rs0/config-01:27019,config-02:27019,config-03:27019" : "rs0/config-01:27019,config-02:27019,config-03:27019",
    "rs1" : "rs1/shard-RS01-S01:27017,shard-RS01-S02:27017",
    "rs1/shard-RS01-S01:27017,shard-RS01-S02:27017" : "rs1/shard-RS01-S01:27017,shard-RS01-S02:27017",
    "rs2" : "rs2/shard-RS02-S03:27017,shard-RS02-S04:27017",
    "rs2/shard-RS02-S03:27017,shard-RS02-S04:27017" : "rs2/shard-RS02-S03:27017,shard-RS02-S04:27017",
    "shard-RS01-S01:27017" : "rs1/shard-RS01-S01:27017,shard-RS01-S02:27017",
    "shard-RS01-S02:27017" : "rs1/shard-RS01-S01:27017,shard-RS01-S02:27017",
    "shard-RS02-S03:27017" : "rs2/shard-RS02-S03:27017,shard-RS02-S04:27017",
    "shard-RS02-S04:27017" : "rs2/shard-RS02-S03:27017,shard-RS02-S04:27017"
},
"ok" : 1

}

1 个答案:

答案 0 :(得分:0)

你需要初始化你的mongos。

ARsession