在WCF中处理大量请求的最佳方法

时间:2016-07-13 11:01:39

标签: c# performance wcf design-patterns concurrency

WCF服务的最佳方法,用于一次处理10k请求等巨大请求。 请建议。

修改

让我说清楚,我有大约10k硬件设备通过以太网连接。现在我必须从设备进行通信。那么在WCF中处理这种情况的最佳方法是什么。

2 个答案:

答案 0 :(得分:1)

取决于问题是什么以及内容是什么。它还取决于它是否是10k的转移(在快速连接上不应该花费很长时间)或者是否是结果的创建。

我们假设它是数据传输。

<强>压缩

您可以尝试启用GZip压缩(WCF Compression)以查看是否会加快速度。请注意,在进行实际压缩和解压缩时会有一些开销。

<强>流

不确定这是否会加快速度(WCF Streaming)。

批量抓取

如果可能的话,你可以在块中获取数据,然后在客户端启动多个线程/任务以检索不同的数据块,然后在完成所有线程后将它们全部放在一起。如果问题实际上是数据创建,这也可以加快速度。

答案 1 :(得分:0)

如果您想处理大量请求,请将数据作为请求。

为此您需要更改readerquotas。 beacuse WCF默认只有8192个字符。 所以你需要改变读者身份。

示例:

<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />