我正在考虑将使用DocumentDb和Azure Table Storage的DAL迁移到单独的Web,并将其作为云服务托管在Azure上。
这样做的主要目的是确保我保持一个高性能的DAL,它可以轻松地独立于我的前端应用程序--目前在Azure上作为云服务运行的ASP.NET MVC5,但我肯定也会添加移动应用程序。使用DocumentDb和Azure Table Storage,我发现自己在C#代码中处理大量数据,因此,我认为将其与前端应用程序分开是一个好主意。
然而,我非常担心从一个云服务到另一个云服务的HTTP调用引入的延迟问题,这将违背将DAL分离到自己的应用程序/云服务中的目的。
在不引入任何延迟问题的情况下,将DAL与前端应用程序分开的最佳方式是什么?
发布于 2014-09-17 02:43:40
我认为横向扩展/分区资源和网络延迟之间的权衡是不可避免的。话虽如此,您可能会发现出于许多原因(例如,启用应用程序任务的并行执行、增强的可靠性等),这种权衡是值得的。在处理大型系统时。
以下是一些通用提示,可帮助您将对网络延迟的影响降至最低:
只要possible.
您可能还会发现以下文献很有用:http://azure.microsoft.com/en-us/documentation/articles/best-practices-performance/
发布于 2014-10-09 10:32:28
我最近将我的DAL分成了一个WebAPI,它为MVC网站和移动应用程序提供来自DocumentDB的数据,原因与提问者所述的原因相同。
来自aliuy的声明是通常被接受为良好实践的有效性能考虑因素。
但更具体地说-为了使用Azure云服务无延迟地从MVC调用Web API,应该为每个资源(网站、云服务等)指定相同的亲和组。
Azure亲和性组是一种方法,您可以在
数据中心中根据彼此的接近程度对云服务进行分组,以实现最佳性能。当你创建一个地缘组时,它会让Azure知道让属于你的地缘组的所有服务在物理上尽可能地彼此接近。
https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-migrate-to-regional-vnet/
https://stackoverflow.com/questions/25874922
复制相似问题