2016-07-22 7 views
1

3ノードのMongoDBレプリカセットをセットアップしました。すべてのサーバは同じVPCに存在しますが、異なるアベイラビリティゾーンに存在します。 etc/hostsファイルのおかげで、私は他のノードを見つける場所を記述していますが、私のレプリカセットはノード間で通信することができます。私のetc/hostsファイルは3つのノードすべてでこのように見えます。mongodb接続文字列にホスト名またはIPアドレスを使用する必要があります

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=rs0 または mongodb://mongo0.example.com:27017,mongo1.example.com:27017,mongo2.example.com:27017/dbname?replicaSet=rs0

それは後者(ホスト名)なら、私は、アプリケーションサーバの/etc/hosts Mongoのノードのそれぞれのように設定する必要がありますか?

答えて

1

通常、IPアドレスを使用するのは悪い考えです。何度も変更する必要があるかもしれません。可能であれば私はホスト名に固執します。

はい、すべてのレプリカメンバーは、すべてのアプリケーションサーバーまたはクライアントマシンが(必要に応じて/ etc/hostsを使用して)名前を解決できるようにする必要があります。

さらに詳しい説明は、this threadも参照してください。

関連する問題