【问题标题】:WCF Service calling another WCF Service is slowWCF 服务调用另一个 WCF 服务很慢
【发布时间】:2011-10-24 11:10:47
【问题描述】:

我有一个设计,我们有一个 WCF 服务,它访问表示为另一个 WCF 服务的数据存储。其背后的理念是坚持 SOA,并有可能通过实际服务和数据访问层实现负载平衡,并使数据存储能够在不影响初始服务的情况下进行大规模更改。

问题是它们在 IIS6 上运行,必须启用加密。

启用这两种服务后,我们得到的平均值约为

平均每秒请求数:4.75469280423686 超过 400 次调用。

但是,如果我删除对第二个服务的服务调用并用绝对引用替换,这几乎翻了一番

平均每秒请求数:8.52248037501811 超过 400 次调用。

有没有人知道如何/我可以做些什么来优化它?

我应该添加这些不是并发调用。

【问题讨论】:

  • 找到解决方案了吗?我看到了一个类似的问题,而且很难找到源头。

标签: c# .net wcf


【解决方案1】:

两个 Web 服务是否在同一台机器和同一个应用程序池上运行?我以前遇到过这个确切的问题;我们最终完全削减了该架构,但我相信将它们放在不同的应用程序池中会有所帮助。

此外,由于您提到了 IIS6,.Net 可能会阻碍您:查看http://msdn.microsoft.com/en-us/library/ff647787.aspx(第 6 章:提高 ASP.NET 性能)——尤其是“线程解释”部分。 (默认情况下,IIS6 没有为您的处理器提供适当数量的 .Net 线程 - IIS7+ 有。)

祝你好运!

【讨论】:

  • 他们在同一个应用程序池中运行非常多。我会尝试的。在这个时候线程甚至还没有进入它我所有的测试都是 400 个连续的要求,其中请求到 S1->S2 的映射是 1:1
  • 有趣,听起来每个与 IIS 的连接都有延迟,即使是在其内部也是如此。您是否有需要花费一些时间的服务行为,例如在 SOAP 标头中进行身份验证?
猜你喜欢
  • 2011-01-31
  • 2018-12-17
  • 1970-01-01
  • 2015-06-19
  • 2017-04-09
  • 1970-01-01
  • 2019-03-06
  • 2014-12-01
  • 1970-01-01
相关资源
最近更新 更多