将数据库,服务和IIS分离到不同的服务器

时间:2014-05-09 09:05:31

标签: sql-server asp.net-mvc architecture

我们正在使用带有Sql Server数据库的Asp.net MVC构建Web应用程序。 该应用程序应该服务数百个用户甚至数千个用户。 为了使其可伸缩,我们希望将数据库分离到运行IIS的不同服务器。

最好的方法是什么?使用连接字符串从IIS服务器到数据库服务器的引用?它不会减慢性能吗?

我们还想将此应用程序的某些服务分离到另一台(第三台)服务器。 是否将数据库复制到第三个服务器是一个好主意?这样我们就可以从第一个问题中减少数据库机器的负载。怎么做?

2 个答案:

答案 0 :(得分:1)

  

最好的方法是什么?从IIS服务器到的引用   数据库服务器使用连接字符串?不会放慢速度   性能

没有最好的办法,因为只有一种方法可以开始。将SQL Server放在另一台计算机上。结束。

您必须调整连接字符串。这将引入延迟并且带宽低于内存,但实际上这些事情是无关紧要的 - 除非你在内存中进行select * From table和过滤,希望没有人这样做。

重点是 - 你获得了更多的处理能力,你获得了可扩展性,相比之下,理论上的影响很小。如果您设法加载数据的1千兆位网络链接,您可能会遇到一些严重错误的设计或一些非常笨拙的编程。对于目的数据库服务器而言,一个非常重要且有希望构建的更高速度将远远超过小的性能损失。

  

将数据库复制到第三个服务器是一个好主意吗?

一根绳子有多长?这取决于服务。一般来说 - 没有。在极少数边缘情况下 - 是的。怎么决定?经验 - 和常识,基于具体要求。

答案 1 :(得分:0)

它建议在服务器上只使用SQL Server。并且不要在该服务器/机器上运行任何其他应用程序。 (如果可能,甚至避免在一台机器上使用多个实例)。由于SQL Server本质上利用所有可能的可用资源来提供最佳性能,并且它假定它是该计算机上唯一的应用程序。

因此,在同一台计算机上托管Sql Server和IIS,您将启动并在两个应用程序之间争夺资源。

显然,如果您在单独的服务器上安装了sql server,则需要调整连接字符串。