如何从Android连接到Azure上的MongoDB?

时间:2013-12-06 21:18:30

标签: java android mongodb azure role

是否有人具体说明如何将Android应用程序连接到在Azure角色上运行的MongoDB?

-

嗨,我在Cloud Service中的多个Azure角色上运行MongoDB副本集。我已使用mongo-azure library on GitHub创建角色实例并让它们在Azure中运行。

大多数在线文章似乎只谈到在本地连接到Azure-MongoDB(通过localhost)。但是,由于我的应用程序不会在本地运行到Azure,我觉得我必须使用REST以某种方式连接到Azure云服务器,这可能会也可能不会将数据传播到MongoDB副本集。

有没有人详细介绍如何将Android应用程序连接到在Azure角色上运行的MongoDB?

(或者,对于那些没有Android / Java经验的人:如何使用非.NET从非本地主机连接?)

ps - 在其他MongoDB问题中,人们已经回答了Android本身不支持MongoDB,并且使用非本机方法对我来说很好。有些应用程序已经执行此操作,主要是Foursquare。不幸的是,他们使用AWS而不是Azure(我的要求)。

pps - 如果有人为链接的mongo-library提供更多关于它如何以更详细的术语工作的资源,那么这也将非常有用。

更新

可能的解决方案

  • 在Visual Studio项目中,我为角色创建了一个输入端点。到目前为止,使用MongoClient mongo = new MongoClient("<my_ip_address>", 27017);
  • 似乎可以解决问题

2 个答案:

答案 0 :(得分:0)

您的“可能解决方案”在我看来是正确的 - 您需要在围绕角色的防火墙中打开(负载平衡)TCP端口,InputEndpoint就是这样做的。

答案 1 :(得分:0)

如果在使用大小为&gt;的副本集进行写入时,则无法使用输入端点。 1如果你是上面的github解决方案。您不希望Azure负载均衡器将写入(插入或更新)路由到MongoDB的辅助节点,在这种情况下您的写入将失败。 如果您使用Azure虚拟机,则可以为每个虚拟机实例创建端口映射并克服此问题。