如何在.NET Core Web API中配置并发?

前端之家收集整理的这篇文章主要介绍了如何在.NET Core Web API中配置并发?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在旧的WCF时代,您可以通过MaxConcurrentCalls设置控制服务并发性. MaxConcurrentCalls默认为16个并发呼叫,但您可以根据需要提高或降低该值.

如何在.NET Core Web API中控制服务器端并发?在我们的情况下,我们可能需要限制它,因为太多并发请求可能会影响整体服务器性能.

解决方法

ASP.NET Core应用程序并发由其 web server处理.例如:

红隼

var host = new WebHostBuilder()
    .UseKestrel(options => options.ThreadCount = 8)

通常,由于基于Kestrel异步的实现,您不必将Kestrel线程计数设置为像1K这样的大值.

更多信息:Is Kestrel using single thread for processing requests like Node.js?

新的Kestrel的Limits属性在ASP.NET Core 2.0 Preview 2中已经是introduced.

You can now add limits for the following:

  1. Maximum Client Connections
  2. Maximum Request Body Size
  3. Maximum Request Body Data Rate

例如:

.UseKestrel(options =>
{
    options.Limits.MaxConcurrentConnections = 100;
}

IIS

当Kestrel在反向代理后运行时,您可以调整代理本身.例如,您可以在web.config或aspnet.config中配置IIS应用程序池:

<configuration>
  <system.web>
    <applicationPool
        maxConcurrentRequestsPercpu="5000"
        maxConcurrentThreadsPercpu="0"
        requestQueueLimit="5000" />
  </system.web>
</configuration>

当然Nginx和Apache都有自己的并发设置.

猜你在找的.NET Core相关文章