MongoDB 副本集主机名 - 客户端与服务器

MongoDB replica set hostnames - client vs. server

我正在设置一个 MongoDB 副本集。主机名都在所有副本集成员(“mongo1”、“mongo2”和“mongo3”)的 /etc/hosts 文件中指定。这些 DNS 名称仅在副本集成员上定义。

客户端通过指向相同机器的其他主机名(Amazon EC2 主机名)连接到副本集。

问题:客户端是否需要能够解析副本集主机名,因为它们不使用这些主机名来建立连接?

是的,客户端需要能够解析用于将节点添加到副本集的主机名。

连接到回复集时,连接字符串中提供的主机名用作种子列表。

客户端依次尝试连接到种子列表中的每个节点,直到一个成功。然后它运行 isMaster 数据库命令来获取副本集中的主机列表,以及当前的主服务器。

客户端断开与种子主机的初始连接,并使用 isMaster 命令中返回的主机名和端口连接到副本集成员。