Web 服务器上的并发传入请求

Concurrent incoming requests at web server

我对电子商务网站限时抢购期间出现的情况有疑问。假设库存中只有 5 件商品,如果同时有 10000 个请求到达服务器,服务器如何处理请求以及如何设法订购请求?

考虑到当前计算机的 cpu 速度,就像上面说的 here

1 million requests per second, would come out as 1 request per 1000 cpu cycles.

虽然请求来自世界的许多端点,但它们是通过单一渠道接收的。这意味着即使两个请求是在同一时间发起的,它们也会一个接一个地出现。如果考虑两个请求的路由条件,接收时间肯定不会相同。他们不可能同时访问服务器。因为路由不允许它以防止冲突。

因此,处理请求的顺序就是它们在网络接口上收到的顺序。请求报文通过应用层后,每个客户端都会有一个专供自己使用的线程。但是像你说的5项这样的共享变量的访问是会同步的。因此只有前 5 个获得这些共享变量锁的线程会获胜。