【问题标题】:Web Service or WebServices网络服务或网络服务
【发布时间】:2010-10-25 18:26:46
【问题描述】:

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

1- 在多核服务器上创建并安装单个 Web 服务,供所有客户端应用程序进行通信。

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

总而言之,我只是想弄清楚选项 1 和 2 之间是否存在显着差异,或者选项 2 是否只会造成不必要的编程头痛.

谢谢,

帕特里克

【问题讨论】:

    标签: c# wcf web-services load-balancing


    【解决方案1】:

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

    拥有单个 Web 服务的优势可能是更容易维护,因为代码在一个文件中等等。当然,如果代码很多,这也会使维护变得更加困难。

    所以问题是,正确的粒度级别是多少?

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

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

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

    示例 您可以使用FedEx 查看此类拆分的真实示例。请注意他们如何通过运输、跟踪和可见性等来拆分其网络服务。

    【讨论】:

    • +1。这正是我会回答的方式,以及我们如何分解我们的网络服务 - 按功能。
    • 非常感谢!这比我通过 Google 找到的任何东西都更能说明利弊。
    • 仅仅因为您只有一项服务并不意味着您必须将所有代码放在一个文件中。您可以拥有一个结构合理的业务层,并且仍然使用一个服务层作为外观。 :)
    猜你喜欢
    • 2018-06-16
    • 1970-01-01
    • 2011-09-15
    • 2018-02-05
    • 2015-02-11
    • 2013-03-18
    • 2011-08-22
    • 2011-04-01
    • 2015-03-30
    相关资源
    最近更新 更多