由于操作超时,无法从配置服务器获取更新的分片列表

时间:2017-10-21 13:25:06

标签: mongodb

  

mongodb:v3.4.9

来自mongodb c ++源代码的错误日志:https://github.com/mongodb/mongo/blob/367d31e1da549c460ae710a8cc280f4c235ab24f/src/mongo/s/client/shard_registry.cpp#L384

当我将新节点添加到分片群集并且所有enableShardCollection无法查询( ExceededTimeLimit )时,Mongos抛出错误。

可以修复吗?

  

将主机config.app.com标记为失败::由:: ExceededTimeLimit引起:操作超时,请求为RemoteCommand 871 - target:config.app.com db:config expDate:2017-10-21T13:16: 38.250 + 0000 cmd:{find:“shards”,readConcern:{level:“most”,afterOpTime:{ts:Timestamp 1508586527000 | 1,t:24}},maxTimeMS:30000}

     

2017-10-21T13:16:38.250 + 0000 I SHARDING [shard registry reload]操作超时::由:: ExceededTimeLimit引起:操作超时,请求是RemoteCommand 871 - target:config.app.com db :config expDate:2017-10-21T13:16:38.250 + 0000 cmd:{find:“shards”,readConcern:{level:“majority”,afterOpTime:{ts:Timestamp 1508586527000 | 1,t:24}},maxTimeMS :30000}

     

2017-10-21T13:16:38.250 + 0000 I SHARDING [shard registry reload]定期重新加载分片注册表失败::由于操作超时而导致:: 50无法从配置服务器获取更新的分片列表,请求是RemoteCommand 871 - target:config.app.com db:config expDate:2017-10-21T13:16:38.250 + 0000 cmd:{find:“shards”,readConcern:{level:“majority”,afterOpTime:{ts :时间戳1508586527000 | 1,t:24}},maxTimeMS:30000};将在30年后重试

1 个答案:

答案 0 :(得分:1)

这件事发生在我身上,经过数小时的调试后发现我的配置服务器在configsvr: true中没有rs.initiate选项的情况下启动了。所以mongos从我的配置服务器请求数据,但配置服务器不知道如何响应。 fwiw,我有

sharding: 
    clusterRole: configsvr

在我的conf文件中,但看起来没有被拿起。