<分区>
我有一个 C# ASP.NET MVC REST Web 服务。 Web 服务有两条主要路径/路线。一份给管理员,一份给用户。 用户通常是 1-2 个管理员用户,其他所有用户都是正常的。 当流量很大时,服务器响应变慢。目前,这意味着管理员用户的请求与普通用户一样缓慢。 我希望管理员用户请求(使用特定路由)具有最高优先级,以便管理员请求很快,就好像服务器上没有负载一样。一种思考方式是我想为管理员创建 VIP 访问权限。
我想到的一个选择是创建另一个服务器,但是管理路由上的操作和用户路由上的操作之间存在一些依赖关系,因此需要编写额外的代码来促进服务器间通信,这反过来可能会造成新的瓶颈。
我认为这可以通过代码来完成,也许是一个自定义请求队列,它可以通过创建一个单独的工作线程池来实现优先级并赋予它们高优先级,但是,这是否真的有效——这意味着一个由 5 个工作线程组成的线程池被赋予最高优先级优先级仍然优先于以默认优先级运行的主 ASP.NET 工作线程池?
理想的解决方案 我正在寻找一种只需要配置、少量代码且不需要新硬件的解决方案。这可能吗?
操作系统:Windows Server 2012 R2 Datacenter (iis8)。
关于现有的瓶颈: 这主要是一个受 CPU 限制的问题,我在运行负载测试时查看了性能计数器。它实际上只是服务器过载的情况,我想保护管理路由的性能,用户可以暂时受苦,直到负载减轻(这意味着我不想投资增加更多容量)