2010-10-25 151 views
2

我正在创建一个应用程序,它将与安装WCF Web服务的单个服务器进行通信。我对这个过程有点新鲜,并且想知道从长远来看这两个选项中的哪一个会更好地处理大量用户的负载:Web服务或Web服务

1-在多个应用程序上创建和安装单个Web Service为所有客户端应用程序进行通信的核心服务器。

2-在多核服务器上创建并安装多个Web服务,每个服务器与客户端应用程序内部的不同模块进行通信。

总而言之,我只是想弄清楚在处理时间和大量用户中是否存在选项1和2之间的显着差异,或者选项2是否会创建不必要的编程头痛。

感谢,

帕特里克

回答

1

有多个Web服务将是每个人都可以有自己的应用程序池(即工作进程)在IIS的优势。因此,您可以为一个Web服务回收一个应用程序池而不影响其他应用程序池。

拥有单个Web服务的好处是维护起来更容易,因为代码位于一个文件中等等。当然,如果代码很多,这也会使维护变得更加困难。

所以问题是,什么是正确的粒度级别?

您可以根据业务功能拆分Web服务,并且我发现这是一个很好的方法。例如,如果您有一些处理发票的业务方法,则可以将这些业务方法放入一个发票Web服务中。

如果您有其他业务方法处理运输订单,则可以将这些方法放入运输网络服务中。

这在我看来创造了一个很好的分割,并且还可以让您利用前面讨论的应用程序池优势。

你可以看到这种类型的分裂与FedEx的现实世界的例子。请注意,他们如何通过运输,跟踪和可视性等方式将Web服务分开。

+1

+1。这完全是我如何回答的,以及我们如何根据功能分解我们的Web服务。 – David 2010-10-25 18:41:25

+1

非常感谢!这比我通过谷歌找到的任何东西都更好地解释了优点/缺点。 – 2010-10-25 19:13:08

+0

仅仅因为你只有一个服务并不意味着你必须把所有的代码放在一个文件中。您可以拥有一个结构合理的业务层,并仍然使用一个服务层作为外观。 :) – 2010-10-26 06:19:09