在内部访问数据库的WebAPI方法中处理多个请求



我们使用WebAPI为多个客户端请求,该请求是在IIS服务器上托管的。

IIS将如何处理数千个请求?

1)在这种情况下,我们如何实现最佳性能?2)将制作WebAPI方法,异步会有所作为吗?3)我们需要遵循哪些最佳实践?

预先感谢。

IIS将如何处理数千个请求?

这取决于。实际上,即使IIS的限制也可能不是您的主要关注点,还有其他事情可能会影响IIS性能,例如硬件。

在这种情况下我们如何实现最佳性能?

您可以做很多事情,可以使用队列系统,在许多情况下,无需让用户等待重度交易或非常复杂的逻辑。如果用户的请求涉及许多不同的复杂任务,则可以执行最低限度并返回用户,其余的可以在后台完成。您可以在这种情况下使用队列系统。

将制作WebAPI方法,异步会带来任何区别吗?

否,因为 async表示"允许此方法异步工作"或"允许此方法使用await操作员"。您应该知道如何使用concurrency,而不仅仅是asynchronous programming。但是,使用Tasks进行重度交易,例如处理数据库和awaitasync方法中处理这些任务,是的,这将帮助您的服务器同时响应更多请求。

我们需要遵循什么最佳实践

concurrency的良好理解将非常有帮助。另外,这不仅与WEB API有关,一切可能影响您的Web应用程序性能,从数据访问层,到RDBMS中的索引,甚至响应可能会做出贡献。就像您的响应是XML一样,您可以使用JSON,因为它比XML生成的数据相对较少,从而更快的数据交换。您的问题非常广泛,这确实取决于。它不仅涉及IISWeb API甚至整个Web application,还取决于。

您需要对Concurrency有很好的了解。上面的答案以最好的方式解释了这一点。另外,您可以浏览此MSDN文章,以获取有关concurrency

的更多深度详细信息

在ASP.NET MVC应用程序中与实体框架进行处理

最新更新