我们使用WebAPI为多个客户端请求,该请求是在IIS服务器上托管的。
IIS将如何处理数千个请求?
1)在这种情况下,我们如何实现最佳性能?2)将制作WebAPI方法,异步会有所作为吗?3)我们需要遵循哪些最佳实践?
预先感谢。
IIS将如何处理数千个请求?
这取决于。实际上,即使IIS的限制也可能不是您的主要关注点,还有其他事情可能会影响IIS性能,例如硬件。
在这种情况下我们如何实现最佳性能?
您可以做很多事情,可以使用队列系统,在许多情况下,无需让用户等待重度交易或非常复杂的逻辑。如果用户的请求涉及许多不同的复杂任务,则可以执行最低限度并返回用户,其余的可以在后台完成。您可以在这种情况下使用队列系统。
将制作WebAPI方法,异步会带来任何区别吗?
否,因为 async
表示"允许此方法异步工作"或"允许此方法使用await
操作员"。您应该知道如何使用concurrency
,而不仅仅是asynchronous programming
。但是,使用Tasks
进行重度交易,例如处理数据库和await
在async
方法中处理这些任务,是的,这将帮助您的服务器同时响应更多请求。
我们需要遵循什么最佳实践
对concurrency
的良好理解将非常有帮助。另外,这不仅与WEB API
有关,一切可能影响您的Web应用程序性能,从数据访问层,到RDBMS
中的索引,甚至响应可能会做出贡献。就像您的响应是XML
一样,您可以使用JSON
,因为它比XML
生成的数据相对较少,从而更快的数据交换。您的问题非常广泛,这确实取决于。它不仅涉及IIS
或Web API
甚至整个Web application
,还取决于。
您需要对Concurrency
有很好的了解。上面的答案以最好的方式解释了这一点。另外,您可以浏览此MSDN文章,以获取有关concurrency
在ASP.NET MVC应用程序中与实体框架进行处理