2012-05-14 54 views

回答

1

默认情况下,MongoDB将在端口27017上运行(请参阅TCP Port Numbers)。只需创建一个Input Endpoint即可让您的内部部署Java应用程序连接到MongoDB,并确保您选择tcp作为协议。

这是这样一个端点从David's blog截图:

MongoDB

请记住,这将打开端口为大家在互联网上,这可能是一个安全隐患。

或者,您可以考虑使用Windows Azure Connect在您的内部部署系统和您的角色之间创建安全的IPSEC连接。

+0

此解决方案不适用于复制套件,因为客户端应用程序需要枚举所有复制节点以创建设置配置,并且无法通过Windows Azure负载平衡器枚举实例。这*可以用于独立版本的MongoDB,但是你也可能希望从源码重建MongoDB以包含SSL(因为它不包含在发行版二进制文件中)。而且......那么你也需要启用安全性。 –

+0

话虽如此:感谢博客文章留言。 :) –

+0

对于Windows Azure Connect建议+1 - 我没有看到第一次阅读它。 –

2

有几件事情你可以做:在你的replicaset节点

  • 运行mongos(碎片路由器),并创建一个表示整个数据库中的一个碎片。 Mongos对每个复制节点的IP /端口都有内部可见性。然后,你的外部Java应用程序将直接连接到mongos。注意:mongos的使用不是10gen提供的脚手架项目的一部分。你需要自己添加这个。
  • 设置Azure Connect,以连接您的Java应用程序和MongoDB复制副本部署。有一个--ipv6标志需要添加到mongod的命令行中(因为Azure Connect仅支持通过隧道的ipv6流量)。我不记得这个标志是否在10gen提供的脚手架中设置,并且ipv6默认是禁用的。