我们在Azure上运行MongoDB,正在设置生产副本集(没有分片),我正在查看这里的建议:
http://docs.mongodb.org/ecosystem/tutorial/install-mongodb-on-linux-in-azure/
我看到副本集配置是这样的,成员将通过外部IP地址相互通信 - 这不会导致额外的Azure成本,因为复制流量通过外部IP和2 )由于相同的原因导致复制延迟?
至少有一个与Mongo交谈的应用程序将在Azure之外运行。
AWS有一项功能,当从VM查找时,外部DNS名称解析为内部IP,从外部解析到外部IP,这使得事情变得更加容易:)在我以前的工作中,我运行了一个相当大的分片mongodb在AWS ......
我好奇你们的建议是什么?我有两个想法......
1)使用外部IP配置每个mongo主机(不完全确定如何在Azure中执行此操作,但我确定它可能......)并将DNS配置为从外部指向这些IP。然后将每个VM配置为具有/ etc / hosts文件,该文件将这些相同的名称指向内部IP地址。在所有情况下(或实际上任何端口)在端口27017上运行Mongo。这意味着该集合通过内部IP执行复制流量,但外部客户端可以使用相同的DNS名称与之通信。
2)类似于#1但在3个不同的端口上运行mongo,但只有一个外部IP地址,并将所有三个外部DNS名称指向此外部IP地址。我们取得了相同的结果,但我觉得它更清洁。
谢谢! 杰里
答案 0 :(得分:0)
没有最佳方式,但让我澄清一些“客观”观点:
servicename.cloudapp.net:port
从一个VM连接到另一个VM。免费。