我在 Azure 上使用 MongoDB 和复制 (bitnami)。
我创建了三个 mongodb 节点 (1 个主节点、1 个辅助节点和 1 个仲裁节点)。当我尝试使用 MongoDB 连接 URI 进行连接时,(mongodb://username:password@ip01:27017,ip02:27017,ip03:27017/?readPreference=primary&replicaSet=replicaset)
它给出了错误,就像pymongo.errors.ServerSelectionTimeoutError: 10.0.0.5:27017: timed out,10.0.0.6:27017: [Errno 113] No route to host,10.0.0.4:27017: timed out,10.0.0.7:27017: timed out
我更喜欢此官方文档 (Bitnami) 作为连接 URL 一样。
答案1
根据您提供的文件。
确保应用程序能够使用其公共或私有 IP 地址连接到每个集群节点。为确保连接性,您有两种选择:
将应用程序托管在与 MongoDB 集群相同的网络中,以便它可以使用其私有 IP 地址寻址每个节点。这是生产环境中的推荐配置。将应用程序托管在不同的网络中,并使用适当的防火墙规则为集群节点分配公共 IP 地址(如果默认情况下尚未分配),以便应用程序可以使用其公共 IP 地址寻址每个节点。不建议在生产环境中使用此配置。
因此,如果您在同一个 Azure 虚拟网络中测试,则可以使用私有 IP(例如 10.0.0.6)。如果您在 Azure 之外测试,则应使用公共 IP 地址。
你可以参考这个回答我提供了。
更新:
如果你想连接你的 mongodb 节点,你需要 ping 私有 IP。这是一种设计行为。
如果您想从您的应用程序或本地使用 mongodb,您需要创建站点到站点 VPN 连接或点到站点 VPN 连接。