【问题标题】:What are the Pitfalls of using a shared static WCF Proxy Client?使用共享静态 WCF 代理客户端有哪些陷阱?
【发布时间】:2009-02-19 00:58:53
【问题描述】:

我正在考虑将共享(读取静态)WCF 代理客户端用于高吞吐量应用程序。我相信这样做会提高性能,但我还没有对此进行基准测试。

这个想法有一些严重的缺陷吗?

根据我的研究,我可以看到存在处理故障状态的问题,尚不清楚该状态对其他未决请求的影响。

有没有人有从故障状态恢复 WCF 代理的经验?

提前致谢!

【问题讨论】:

标签: static client shared wcf-proxy


【解决方案1】:

一旦通道处于故障状态,它将保持这种状态。所以是的,我认为静态客户端会有问题。我也是以这种方式开始的,但最终为每次通话创建并打开了一个新频道。似乎没有太多的性能权衡。

作为参考,我在来自另一台四核机器的四核机器上执行大约 30-60 个请求,每个请求每秒大约 5K-30K。到目前为止,WCF 一直保持良好状态。

【讨论】:

  • 您是否尝试使用“client.InnerChannel.AllowOutputBatching = true;” ?我在想这可能是性能提升所在
  • 不,我的配置非常“开箱即用”。我唯一改变的是增加 MaxItemsInObjectGraph 和 MaxRecievedMessageSize。没有尝试过 AllowOutputBatching。看看效果如何会很有趣。
【解决方案2】:

我刚刚发现,在执行 [OperationContract(IsOneWay = true)] 的单向操作调用时,在代理上调用 Close() 会阻塞。这也会改变流程。

【讨论】:

    猜你喜欢
    • 2020-04-15
    • 2011-12-11
    • 2015-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多