我应该为mongodb连接字符串使用主机名或IP地址

时间:2016-07-22 01:47:04

标签: mongodb replicaset mongodb-replica-set

我已经设置了一个包含3个节点的MongoDB副本集。所有服务器都位于同一个VPC中,但位于不同的可用区域中。感谢etc/hosts文件,在我描述在哪里找到其他节点时,我的副本集能够在节点之间进行通信。我的etc/hosts文件在所有3个节点上都是这样的。

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

如果它是后者(主机名),我应该像每个mongo节点一样配置应用服务器的/etc/hosts吗?

1 个答案:

答案 0 :(得分:2)

使用IP地址通常是一个坏主意,因为很多时候它们可能需要更改。如果可能的话我会坚持使用主机名。

是的,您需要确保所有副本成员任何应用服务器或客户端计算机都可以解析名称(必要时使用/ etc / hosts)。

另请参阅this thread以获得更详尽的解释。