使用--rest与MongoDB的mongos

时间:2014-08-19 19:21:33

标签: mongodb rest

我创建了一个小型MongoDB v2.6.4群集,其中包含一个 mongos 路由器,三个配置服务器和一些 mongod 数据服务器。它工作正常,我可以从mongos客户端进行CRUD操作,该客户端指向适当的分片。

我现在想要尝试其余的服务。

当我使用 mongod 对单个MongoDB数据服务器进行尝试时,它完全按照规定运行。

即使是现在,我也可以连接到与--rest一起运行的每个分片并获得Web响应。但是,结果有点出乎意料。我看到概述,客户端,dbtop,写锁,日志等。如果我点击listDatabase,我实际上看到我的数据库已列出。但是,我尝试的任何REST尝试都返回一个JSON对象,显示的是0,没有行,总共0个roes,没有查询和0毫秒。

目前我认为这无关紧要,因为我直接连接到一个碎片并且预计只会看到碎片的内容 - 尽管进一步的实验已经无法生成结果。

同样,我要强调的是,在当前的分片配置中, mongos ,NodeJS和PHP都可以很好地查看,查询和操作MongoDB集合中的数据。

然而,我正在尝试做的事情(如果它甚至可能)是通过REST连接到mongos分片服务,因为它确实提供了--httpinterface选项,认为它将公开访问碎片并做正确的事。

它提供标准状态页面,但是点击任何链接或手动滚动任何REST会导致关于--rest未启用的消息以及我应该启用它。

REST is not enabled, use --rest to turn on.
check that port 28017 is secured for the network too.

问题是, mongos 不允许这样做! ( mongod,但

  1. 完全有可能这是正确的行为,但我不确定REST服务如何在分片配置中工作。
  2. 我没有使用配置文件,通过命令行指定所有内容。也就是说,我尝试在yaml中传递一个带有RESTInterfaceEnabled: true的配置文件,但它没有帮助。
  3. mongos正在返回一个Web界面,其中包含List all命令,db版本和日志。它缺少其他诊断信息(通常是mongod特定的),这是我可能期望的。但它提供的链接不起作用 - 所有要求我打开不存在的选项。
  4. 我手动检查了每个分片数据服务器(使用--shardsvr运行mongod),并直接连接到它们 提供REST访问。
  5. 关于分片群集的其他所有内容都完美无缺。我只是不能REST,就像我可以在单节点无边界解决方案中访问我的数据库或集合。
  6. 我可能错过了什么?这甚至可能吗?有什么想法吗?

1 个答案:

答案 0 :(得分:2)

AFAIK REST接口主要用于监控/管理以不访问文档。 MongoDB不提供官方REST接口来进行CRUD操作。为此,您需要创建自己的或在生态系统中找到一个库来执行此操作,请查看http://docs.mongodb.org/ecosystem/tools/http-interfaces/

您是否有特定的要求/需求?

PS:我在任何部署/开发中都没有使用--rest参数。