我只是很好奇,有一些像MongoLab这样的服务,其中数据托管在远程服务器上。使用数据库的任何人都知道存在一定的网络延迟,即使所有服务器都是内部的。 MongoLab等远程数据存储服务对于生产环境是个好主意吗?
此问题主要针对基于AJAX的网络应用或网站。
答案 0 :(得分:2)
我发现MongoLab非常好。显然,您需要考虑一般的往返,并优化这些将最大限度地减少您的整体延迟。
将自己置于与MongoLab相同的数据中心(您可以选择在哪里)也是有意义的。他们现在也在Azure上提供(测试版)服务。
我一直在运行具有高延迟的服务(浏览器,Web服务器和Mongo有三个不同的地理区域,在我的情况下它仍能充分发挥作用,因为我的交互不是“健谈”。
正如您可能知道的,Mongo的设计约束之一是缺少连接,因此我的数据结构自然而然地用于简单的Q& A获取数据。我没有阅读一个集合,然后使用该信息来查看另一个集合(手动连接)。因此,我不会在这些复杂的交互中增加延迟成本。最糟糕的情况通常是单个请求/响应(或一系列并行,单个请求/响应查询),因此总共大约200ms的差异是可接受的。
但是,当然,你越接近你的网络服务器就越好。
据推测,如果你花了足够的钱,MongoLab等人可以为你提供一个自定义配置,可能你可以在那里有当地的辅助设备。