小编Alb*_*ong的帖子

如何连接到代理后面的 MongoDB 副本集?

我在云服务上有一个 MongoDB 副本集。出于安全原因,副本集可用于云的内部网络。

我遵循了该云服务的指南,并在代理服务器上为副本集的每个成员设置了一个代理:

0.0.0.0:27017 -> member1-private-ip:27107
0.0.0.0:27018 -> member2-private-ip:27107
0.0.0.0:27019 -> member3-private-ip:27017
...
Run Code Online (Sandbox Code Playgroud)

我能够以独立模式从公共网络连接到副本集的每个成员:

mongoUri = new MongoClientURI("mongodb://usr:pwd@proxy-server-public-ip:27017/db")  ;
client = MongoClient(mongoUri);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试以副本集模式连接它时:

mongoUri = new MongoClientURI("mongodb://usr:pwd@proxy-server-public-ip:27017,proxy-server-public-ip:27018,proxy-server-public-ip:27019/db?replicaSet=replcaSetName");
client = MongoClient(mongoUri);
Run Code Online (Sandbox Code Playgroud)

我会因连接错误而失败,因为复制集告诉驱动程序使用每个成员的内部地址(无法从公共网络访问)。

ps:我可以在代理服务器上以副本集模式连接到副本集。

如何连接到代理服务器后面的副本集?


更新:我在连接时使用代理服务器的公共地址。

mongodb

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

mongodb ×1