【发布时间】:2015-06-27 13:15:04
【问题描述】:
我们正在 Azure 上运行 MongoDB,并且正在设置生产副本集(无分片),我正在查看这里的建议:
http://docs.mongodb.org/ecosystem/tutorial/install-mongodb-on-linux-in-azure/
我看到副本集配置是这样的,成员将通过外部 IP 地址相互通信 - 这不会 1) 产生额外的 Azure 成本,因为复制流量通过外部 IP 和 2) 产生因为相同的复制延迟?
至少有一个与 Mongo 通信的应用程序将在 Azure 之外运行。
AWS 有一个功能,当从 VM 查找外部 DNS 名称时解析为内部 IP,当从外部解析到外部 IP 时,这使事情变得更加容易:) 在我之前的工作中,我运行了一个相当大的 mongodb 分片在 AWS...
我很好奇你们的建议是什么?我有两个想法...
1) 为每个 mongo 主机配置一个外部 IP(不完全确定如何在 Azure 中执行此操作,但我确信这是可能的......)并将 DNS 配置为从外部指向这些 IP。然后将每个 VM 配置为具有将这些相同名称指向内部 IP 地址的 /etc/hosts 文件。在所有情况下(或任何端口)都在端口 27017 上运行 Mongo。这意味着该集合通过内部 IP 进行复制流量,但外部客户端可以使用相同的 DNS 名称与其通信。
2) 与 #1 类似,但在 3 个不同的端口上运行 mongo,但只有一个外部 IP 地址,并将所有三个外部 DNS 名称都指向该外部 IP 地址。我们取得了相同的结果,但我认为它更清洁。
谢谢! 杰瑞
【问题讨论】: