容量为Elastic Beanstalk的503服务器

时间:2016-07-24 18:42:48

标签: node.js mongodb amazon-web-services elastic-beanstalk

我有运行Node app的弹性beanstalk。 Node app将数据发送到通过cloudformation构建的3台Mongo服务器。一切都很好,直到我在数据库中达到几百万个条目,然后突然我开始得到503错误。

日志从节点应用程序显示:

[MongoError: exception: socket exception [CONNECT_ERROR] for s2-rs9/XXXXXX:27027]
  name: 'MongoError',
  message: 'exception: socket exception [CONNECT_ERROR] for s2-rs9/XXXXXX:27027',
  sharded: false,
  primary: 's2-rs9',
  code: 11002,
  ok: 0,
  errmsg: 'exception: socket exception [CONNECT_ERROR] for s2-rs9/XXXXXX:27027' }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要做的就是为数据库启用分片,错误消息中的分片为false。如果查询增加,则必须启用分片以平衡增加的查询数。

您可以使用sh.enableSharding(database)

执行此操作

要查看用于分片的命令,您可以执行sh.help(),这将输出您的命令列表及其说明。在那里你可以找到这个enableSharding。

另外请记住,在进行分片之前,你需要在myKey上使用indeces(否则你会收到一些关于indeces的错误)。因此,如果您还没有这样做 - 请先使用db.collection.ensureIndex(myKey)

创建它们