Meteor 1.4.1.1上副本集的正确MONGO_URL设置是什么

Tob*_*oby 5 heroku mongodb meteor mongodb-replica-set

今天早上,我将我更新的Meteor项目部署到Heroku上.

我正在升级1.1.0.31.4.1.1.

使用Meteor Buildpack Horse一切安装正确,但应用程序错误输出错误;

MongoError:种子列表不包含mongos代理,replicaset连接需要在URI或options对象中提供参数replicaSet,mongodb:// server:port/db?replicaSet = name

MONGO_URLmongodb://u:p@url1:port,url2:port/db改成了;

mongodb://u:p@url1:port,url2:port/db?replicaSet=set-name

如果我使用replicaSet参数出错,我会收到此错误;

MongoError:在replicaset中找不到主要内容

这似乎是明智的,因为replicaset不存在,但是当我把正确的值放入时,我再次得到原始错误,说种子列表不包含代理.

我的副本集名称中有一个破折号,我不知道这是否相关.

我试过的

我尝试使用在Mongo客户端中抛出此错误的URL,它允许我连接到实例,所以我知道所有细节都是正确的.

我也试过转义replicaSet,所以?replicaSet=set\-name这给了我MongoError: no primary found in replicaset错误.

我和MongoDB提供商签了一张门票,但我怀疑这是Meteor/me的问题!

Mas*_*rAM 6

Meteor v1.4使用新版本的MongoDB驱动程序.

虽然MONGO_URL环境变量的格式正确,但错误是由MONGO_OPLOG_URL,应该修改为包含replicaSet参数.

有关更多详细信息和以下注释(关于Compose.io),请参阅此GitHub问题.

oplog驱动程序文档:

Oplog尾部在开发模式下自动启用meteor run,并且可以在生产MONGO_OPLOG_URL环境变量中启用.

(......)

要在生产Meteor应用程序中使用oplog拖尾,必须将MongoDB服务器配置为副本集 ; 单个mongod数据库没有oplog.您的群集可能不使用Mongo分片.

迁移指南:

从1.4开始,您必须确保MONGO_OPLOG_URL包含replicaSet参数(请参阅changelogoplog文档).

注意:某些MongoDB主机提供程序可能具有不要求您使用replicaSet参数的部署设置.例如,Compose.io有两种类型的部署,MongoDB Classic和MongoDB +.新的MongoDB +产品是分片设置而不是真正的副本集(尽管分片被实现为副本集)因此它不需要replicaSet参数,如果将Meteor添加到连接字符串中,Meteor将抛出错误.