2016-07-22 60 views
1

我已經設置了一個包含3個節點的MongoDB副本集。所有服務器都位於相同的VPC中,但位於不同的可用區域中。感謝etc/hosts文件,在我描述在哪裏找到其他節點時,我的副本集能夠在節點之間進行通信。我的etc/hosts文件在所有3個節點上都是這樣。我應該使用主機名或IP地址作爲mongodb連接字符串

127.0.0.1 localhost mongo0.example.com 
Private IP 1 mongo0.example.com 
Private IP 2 mongo1.example.com 
Private IP 3 mongo2.example.com 

現在,應用程序服務器需要連接到副本集。我應該使用連接字符串中的節點的IP地址,還是應該使用主機名?

mongodb://private_ip1:27017,private_ip2:27017,private_ip3:27017/dbname?replicaSet=rs0mongodb://mongo0.example.com:27017,mongo1.example.com:27017,mongo2.example.com:27017/dbname?replicaSet=rs0

如果是後者(主機名),我應該配置應用程序服務器的/etc/hosts像每個蒙戈節點?

回答

1

使用IP地址通常是一個壞主意,因爲它可能需要更改多次。如果可能的話,我會堅持使用主機名。

是的,您需要確保所有副本成員任何應用程序服務器或客戶機可以解析名稱(必要時使用/ etc/hosts)。

有關更全面的解釋,另請參閱this thread

相關問題