当指定用于连接到来自Java应用程序的MongoDB副本集的客户端URI时,我对MongoDB连接字符串replicaSet选项的use/need选项感到困惑。MongoClientURI连接字符串中是必需的副本集名称吗?
我有3个运行MongoDB的节点实例组成副本集,每个都被指定为同一副本集的成员。我想从我的Java应用程序连接到副本集。当我给出超过2个主机名的列表时,如果甚至有必要在连接字符串中指定副本集名称,我从我读过的文档中感到困惑。
以下是我如何启动我的3节点MongoDB实例。
- 服务器1 $:mongod的--replSet “RS0”
- Server2上$:mongod的--replSet “RS0”
- Server3的$:mongod的--replSet “RS0”
我假设一个协商会发生,并且一个主要被选中,其余的 被标记为次要。
然后,我想通过来自我的Java应用程序的MongoClient调用来连接到副本集。是否需要实际的副本集名称?我是否需要列出副本集的每个成员,或者MongoDB驱动程序是否只需要副本集的单个成员来确定其余成员?
MongoClient mongoClient = new MongoClient(
new MongoClientURI(
"mongodb://Server1,Server2,Server3/?replicaSet=rs0"
)
);
我需要replicaSet选项吗?