能够处理10000个并发请求 - 怎么做?

时间:2011-02-14 11:39:23

标签: wcf

我的服务器需要能够同时处理10000个请求。

我不知道如何在WCF上定义它 - 我找不到任何可以帮助我理解如何操作的示例或文章。

我是否需要为每个即将到来的请求创建不同的线程?

1 个答案:

答案 0 :(得分:3)

您可以使用app.config文件中的serviceThrottling标记来执行此操作:

<serviceThrottling maxConcurrentSessions="10000" maxConcurrentCalls="1000"/>

您不需要创建任何线程,WCF将使用线程池为您处理所有这些。


话虽如此,如果所有这10000个请求都在同一时间到来,并且应该同时处理(例如,假设他们都在递增一个互锁的int,并且这些调用都不会在它到达之前返回10000),。net CLR可能无法创建10000个所需的线程...

我认为你应该仔细检查你的并发要求到底是什么。将maxConcurrentCalls增加到10000并不是一个灵丹妙药,它不会神奇地解决您在软件(以及硬件中)其他地方可能存在的所有其他性能瓶颈和/或限制。

如果所有这些线程都使用单个数据库连接,那么能够处理x并发请求就无济于事了!