基于iis架构,客户端请求到达IIS会经过httppipeline,具体来说是经过各个httpmodule,最后到达各自的httphandler,再到达worker进程,这个是顺序发生的吗?
假设一秒钟内有 10,000 个请求同时到达 Web 服务器,每个请求都会被逐一处理吗?如果 Web 服务器有多核 CPU 和高内存容量,这是否有助于 IIS 同时处理请求?
是否有任何网络服务器能够并行处理请求?
答案1
好问题 :) 您需要一个像样的盒子来处理每秒 10k 个请求,在 IIS 架构中,要处理这种类型的负载,您需要一个网络农场。http.sys > Process Activation Service > w3wp 是请求所采用的路径。每个应用程序池都有队列来一次处理请求。
http://www.dotnetfunda.com/articles/article821-beginners-guide-how-iis-process-aspnet-request.aspx http://msdn.microsoft.com/en-us/library/bb470252(v=vs.100).aspx http://technet.microsoft.com/en-us/library/cc745955.aspx
IIS 8 具有 NUMA 支持,这有助于扩展。 http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-multicore-scaling-on-numa-hardware
还有其他因素,内容类型和应用。:)