當指定用於連接到來自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選項嗎?