【问题标题】:Connection to MongoDB in Azure with Java使用 Java 连接到 Azure 中的 MongoDB
【发布时间】:2012-05-15 14:53:25
【问题描述】:

首先:我是 azure 的新手。好的,我想要一个天蓝色的 MongoDb 副本集。我用了这些网站: http://www.mongodb.org/display/DOCS/Azure+Deploymenthttps://github.com/mongodb/mongo-azure 那很好用。但是如何从我的 java 应用程序访问这个 mongo 副本集? Java 应用程序不在云中运行。 谢谢你的帮助。

【问题讨论】:

    标签: java mongodb azure


    【解决方案1】:

    你可以做的几件事:

    • 在您的副本集节点上运行 mongos(分片路由器),并创建代表整个数据库的单个分片。 Mongos 将对每个副本集节点的 ip/port 具有内部可见性。然后,您的外部 java 应用程序将直接连接到 mongos。注意:使用 mongos 不是 10gen 提供的脚手架项目的一部分。您需要自己添加。
    • 设置 Azure Connect,在 Java 应用程序和 MongoDB 副本集部署之间架起桥梁。您需要将 --ipv6 标志添加到 mongod 的命令行中(因为 Azure Connect 仅支持隧道上的 ipv6 流量)。我不记得是否在 10gen 提供的脚手架中设置了此标志,并且默认情况下禁用了 ipv6。

    【讨论】:

      【解决方案2】:

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

      这是来自David's blog的此类端点的屏幕截图:

      请记住,这将为互联网上的每个人打开端口,这可能会带来安全风险。

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

      【讨论】:

      • 此解决方案不适用于副本集,因为客户端应用程序需要枚举所有副本集节点以创建集配置,并且您无法通过 Windows Azure 负载均衡器枚举实例。这适用于 MongoDB 的独立版本,但您也可能希望从源代码重建 MongoDB,以包含 SSL(因为它不包含在分发二进制文件中)。而且...然后您还需要启用安全性。
      • 话虽如此:感谢您的博客文章。 :)
      • +1 表示 Windows Azure Connect 建议 - 我第一次阅读时没有看到。
      • 感谢您的帮助。没错,它不适用于副本集。如果我在没有副本集的情况下启动 MongoDb,它将起作用。现在我将测试 Makogon 先生的想法。
      猜你喜欢
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多