【问题标题】:.Net web service, performance for number of services vs size of service.Net Web 服务,服务数量与服务大小的性能
【发布时间】:2011-01-15 16:40:56
【问题描述】:

我在一个大型 .Net Winforms 项目上工作,该项目通过 Web 服务连接到 Sql Server。它已经发展到具有按业务功能分组的大约 10 种不同的服务。其中一些服务已经变得相当大,具有许多功能。这方面的最佳做法是什么?在同一个服务中拥有数百个功能是否会影响性能?拥有更多更小的服务会更好吗?它看起来相当容易使用,服务彼此之间相当隔离,而且您通常会立即知道您想要哪种服务。

【问题讨论】:

    标签: .net web-services


    【解决方案1】:

    最好减少对返回较大数据集的 Web 服务方法的调用,而不是对仅返回少量数据的 Web 方法进行多次调用。经验法则是尽可能避免跨越进程和网络边界。

    【讨论】:

    • 我有相同数量的调用和相同数量的数据。我的问题是在 1 项服务中进行 1000 次调用,还是在 10 种不同服务中进行 100 次调用,或者在 20 种服务中进行 50 次调用,这会更好吗?
    • 我不同意。在任何给定时间只检索您需要的数据。例如,为客户返回所有数据的大量小调用优于返回所有数据的大调用。
    • @DaveRead,为了得到客观的结果,最好执行负载测试。就我个人而言,我已经进行了许多测试(在我的应用程序中),其中的结论是网络延迟和序列化/反序列化开销使得最好使用更大的数据集进行更少的调用。当然这取决于。
    【解决方案2】:

    当您提到调用时,您是指 WebMethods,还是指对 WebMethod 的实际调用?

    我从未听说过将所有 Web 方法组合到一个 Web 服务中的瓶颈,但将其拆分为多个服务的一个优点是您可以将每个 Web 服务放在不同的应用程序池中,这样至少可以减少关于应用程序池回收。

    此外,基本的 Web 服务在 .net 4.0 中已被弃用。它们已被 WCF 取代,与旧的 Web 服务方法相比,WCF 显示出一些显着的性能提升。两者的性能分析见http://msdn.microsoft.com/en-us/library/bb310550.aspx

    【讨论】:

      猜你喜欢
      • 2010-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多