是否可以为ASP.NET MVC路由提供比其他路由更多的服务器资源

本文关键字:路由 其他 资源 服务器 ASP MVC NET 是否 | 更新日期: 2023-09-27 18:25:05

我有一个C#ASP.NET MVC REST web服务。Web服务有两条主要路径/路线。一个用于管理员,一个用于用户。用户通常有1-2个管理员用户,所有其他用户都是正常用户。当流量很大时,服务器的响应速度会变慢。目前,这意味着管理员用户的请求和普通用户一样慢。我希望管理员用户的请求(使用特定的路由)具有最高优先级,这样管理员请求就会很快,就好像服务器上没有负载一样。考虑这一点的一种方法是,我想为管理员创建VIP访问权限。

我想到的一个选项是创建另一个服务器,但管理路由上的操作和用户路由上的动作之间存在一些依赖关系,因此需要编写额外的代码来方便服务器间的通信,这反过来可能会造成新的瓶颈。

我认为这可以通过代码来实现,也许是一个自定义请求队列,它可以通过创建一个单独的工作线程池来实现优先级,并赋予它们高优先级。然而,这真的可行吗?这意味着一个由5个工作线程组成的线程池赋予最高优先级,仍然比以默认优先级运行的主ASP.NET工作线程池具有优先级?

理想的解决方案我正在寻找一个只需要配置,少量代码,不需要新硬件的解决方案。这可能吗?

操作系统:Windows Server 2012 R2数据中心(iis8)。

关于现有瓶颈:这主要是一个CPU绑定问题,我在运行负载测试时查看了性能计数器。这实际上只是一种服务器过载的情况,我想保护管理路由的性能,用户可能会暂时受到影响,直到负载减轻(意味着我不想投资增加更多容量)

是否可以为ASP.NET MVC路由提供比其他路由更多的服务器资源

我不熟悉IIS服务器上的Http请求的优先级。正如您所提到的,最快的解决方案是使用另一台服务器。如果您使用相同的代码库和相同的数据库,那么您甚至不需要添加一行代码。

但也许你应该多调查一下你的问题,找到你的瓶颈,CPU,内存,DB,Http请求。。。