【发布时间】:2016-07-30 06:48:02
【问题描述】:
在指定用于从 Java 应用程序连接到 MongoDB 副本集的客户端 URI 时,我对 MongoDB 连接字符串 replicaSet 选项的使用/需要感到困惑。
我有 3 个运行的 MongoDB 节点实例组成副本集,每个实例都被指定为同一副本集的成员。我想从我的 Java 应用程序连接到副本集。我对我读过的文档感到困惑,当我提供超过 2 个主机名的列表时,是否甚至需要在连接字符串中指定副本集名称。
这是我启动 3 节点 MongoDB 实例的方式。
- Server1$: mongod --replSet "rs0"
- Server2$: mongod --replSet "rs0"
- Server3$: mongod --replSet "rs0"
我假设会发生协商,选出一个 Primary,剩下的 被标记为辅助节点。
然后我想通过我的 Java 应用程序中的 MongoClient 调用连接到副本集。是否需要实际的副本集名称?我需要列出副本集的每个成员,还是 MongoDB 驱动程序只需要副本集的单个成员来确定其余部分?
MongoClient mongoClient = new MongoClient(
new MongoClientURI(
"mongodb://Server1,Server2,Server3/?replicaSet=rs0"
)
);
我需要 replicaSet 选项吗?
【问题讨论】:
标签: mongodb mongodb-replica-set