1
我的应用程序在NodeJS 4.4.7上运行,并使用MongoDB驱动程序2.2.31(不是Mongoose)连接到Azure CosmosDB。这就是我如何连接到DB:MongoError:连接在Azure上超时CosmosDB
var connectionString = 'mongodb://USERNAME:[email protected]:10255/DB_NAME?ssl=true'
var options = {
db: { j: false },
server: { autoReconnect: true, socketOptions: { connectTimeoutMS: 300000 } },
};
require('mongodb').MongoClient.connect(connectionString, options, callback);
而且我最近开始遇到了以下错误:
MongoError: connection X to http://yyy.documents.azure.com:10255 timed out
其中X是一个小的整数(我见过8,10,29,和等等)。
一些背景资料:
- 没办法,错误(30+天),当我没有地理复制设置。
- 最近从Azure门户(美国西部作为写入区域,美国东部作为读取区域)设置了地理复制。
- 遇到“无主服务器可用”错误。
- 将我的mongodb驱动程序从2.0.49更新到2.2.31,错误消失,但立即开始出现“池已损坏”错误。
- 继this workaround解决这个问题(即删除
&replicaSet=globaldb
) - 后的零个问题3天,我就开始经历了上述“连接超时”的错误。第一次报告的错误发生在8月16日晚上8点24分左右,最后一次错误报告发生在8月17日上午6点40分左右。
我不知道它是否是来自Azure的暂时性问题或有什么问题在我连接到CosmosDB的方式。任何建议,将不胜感激!
感谢@alekseys,我想尝试您的建议,但我很难在MongoDB NodeJS驱动程序中查找等效变量。你能帮我找到'maxConnectionIdleTime'和'heartbeatConnectTimeout'等价吗? –
在NodeJS驱动程序中没有严格的等价物。您可能想查看keepAlive选项以及http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect – alekseys
上列出的其他人的组合。谢谢。我正在使用'keepAlive','socketTimeoutMS'和'connectTimeoutMS',并将监视是否在周末发生同样的错误。 –